Mysql

关注公众号 jb51net

关闭
首页 > 数据库 > Mysql > MySQL 索引最左匹配

MySQL数据库索引的最左匹配原则

作者:风幕浦

sql查询用到索引的条件是必须要遵守最左前缀原则,本文就详细的介绍了MySQL数据库索引的最左匹配原则,感兴趣的可以了解一下

一. 联合索引说明

建立三个字段的联合索引

联合索引(a,b,c)相当于建立了索引:(a),(a,b),(a,b,c)

二. 那ac是否能用到索引呢?

先给出结论:a可以命中联合索引(a,b,c),c无法命中,所以ac组合无法命中联合索引。

1.建立abc联合索引(province,city,district)

在这里插入图片描述

ac索引查询

SELECT * FROM user_address WHERE province = '广东' 
AND district = '南雄市'

在这里插入图片描述

显示查询范围是ALL

2.直接建立ac两个字段得联合索引

在这里插入图片描述

SELECT * FROM user_address WHERE province = '广东' 
AND district = '南雄市'

在这里插入图片描述

查询结果是ref走了索引,扫描的行数也从21行变成了13行

3.ab索引查询
在这里插入图片描述

查询范围为ref

结论

abc联合索引,ac中的c不能命中这三个字段的联合索引,a可以命中,所以possible_keys列会显示使用了联合索引

三. 思考

abc索引,acb会走索引吗?

四. 最左匹配原则的成因

到此这篇关于MySQL数据库索引的最左匹配原则的文章就介绍到这了,更多相关MySQL 索引最左匹配 内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文