mysql联合索引最左原则

建立联合索引(id,name,age),索引里数据结构为order by id, name,age:

idnameage
1a3
2b2
3aaa2
4bbb1
5bbb2

最左原则,建立了(id),(id,name),(id,name,age)三个索引列,

id:此列是全局有序的,所以单独使用id可利用上索引

name:是相对有序,即根据id排序之后,再对name排序,相同的id再对name排序

age:是相对有序,先对id排序,再对name排序,再对age进行排序。

所以name和age并非全局有序,在没有id条件的情况下,不可能利用上索引。

name必须和id一起才有序,只要同时存在,无所谓顺序前后,name=* and id=1 也能利用上索引;

age必须和id、name同时存在才有序,只要三个字段同时存在,无所谓前后顺序,age=* and name=* and id=1 一样能利用上索引。

第一个全局有序,后面都是相对有序。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值