栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

了解MySQL查询中的多个列索引

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

了解MySQL查询中的多个列索引

好问题。

索引从左到右起作用,因此您的

WHERe
条件将使用索引。在这种情况下,排序也将利用索引(下面的执行计划)。

从手册:

即使

ORDER BY
索引与索引不完全匹配,也可以使用索引,只要索引的所有未使用部分和所有额外的
ORDERBY
列在
WHERe
子句中都是常量即可。以下查询使用索引来解析
ORDER BY
零件:

SELECt * FROM t1WHERe key_part1=constantORDER BY key_part2;

如果您只有一个列索引(

accountid
),则将使用文件排序。因此,您的查询确实受益于该索引。


两栏索引

create table t1 (  accountid tinyint,  logindate date);create index idx on t1 (accountid, logindate);insert into t1 values (1, '2012-09-05'), (2, '2012-09-09'), (3, '2012-09-04'),     (1, '2012-09-01'), (1, '2012-09-26'), (2, '2012-05-16'),     (1, '2012-09-01'), (3, '2012-10-19'), (1, '2012-03-01')

执行计划

ID SELECT_TYPE表类型POSSIBLE_KEYS KEY KEY_LEN REF ROWS FILTERED EXTRA1 SIMPLE t1 ref idx idx 2 const 5100使用位置; 使用索引

单列索引

create table t1 (  accountid tinyint,  logindate date);create index idx on t1 (accountid);insert into t1 values (1, '2012-09-05'), (2, '2012-09-09'), (3, '2012-09-04'),     (1, '2012-09-01'), (1, '2012-09-26'), (2, '2012-05-16'), (1, '2012-09-01'),     (3, '2012-10-19'), (1, '2012-03-01')

执行计划

ID SELECT_TYPE表类型POSSIBLE_KEYS KEY KEY_LEN REF ROWS FILTERED EXTRA1 SIMPLE t1范围idx idx 2 5 100 使用文件排序


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/400714.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号