首页 > 数据库 > mysql

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

发布时间:2021-11-18 16:47 作者:风幕浦

一. 联合索引说明

建立三个字段的联合索引

联合索引(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 索引最左匹配 内容请搜索猪先飞以前的文章或继续浏览下面的相关文章希望大家以后多多支持猪先飞!

原文出处:https://blog.csdn.net/weixin_44397907/article/details/107526

标签:[!--infotagslink--]

您可能感兴趣的文章: