mysql索引 钱缀_mysql索引最优左前缀

本文解析了MySQL中联合索引的'带头大哥'和'中间兄弟'原则,探讨了在where条件中不同组合对索引利用的影响,以及where条件顺序调整对索引选择的灵活性。通过实例说明了如何最大化复合索引的效益。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

mysql 在使用联合索引时会有一个最优左前缀的一个原则

其实就是 where条件后跟随的多个条件字段使用复合索引的一个规则(引用别人的一句话:带头大哥不能死,中间兄弟不能断)

比如 user表  字段 id  name age  salary    创建复合索引 (name age  salary )

当创建(a,b,c)复合索引时,相当于创建了(a)单列索引,(a,b)组合索引以及(a,b,c)组合索引

想要索引生效的话,只能使用 a和a,b和a,b,c三种组合

1.有带头大哥

select * from user where name='qiaofeng' and age= 28 and salary = 11000

此时是走索引的

2.有带头大哥,有中间兄弟

select * from user where name='qiaofeng' and age= 28

此时是走索引的

3.有带头大哥,没有中间兄弟

select * from user where name='qiaofeng' and and salary = 11000

此时只有name字段走索引的, 而salary不走索引

4.没有带头大哥

select * from user where  age= 28 and and salary = 11000

此时是没有匹配索引的

另外,where后条件字段顺序不按照索引顺序 也是没问题的,因为mysql 在查询时会自动根据字段的最大化的匹配索引

select * from user where age= 28 and name='qiaofeng'  也是走索引的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值