MySQL索引部分生效原理是什么
MySQL 版本 5.6,Innodb 引擎
如果数据库表是按照 (a,b,c) 建的联合索引
select * from myTest where a=3 and c=7;//a使用到了,c没有
select * from myTest where a=3 and b>7 and c=3;//a,b使用到了,c没有。
select * from myTest where a=3 and b>=7 and c=3;//abc都使用到了
上面 3 句 sql 都可以使用到联合索引,但是第一个是 a 使用到了,c 没有
第二个是 a,b 使用到了,c 没有。
第三个是 abc 都使用到了。
我就是不太理解为什么索引部分字段失效的原理?有没有大佬简单说一下上面的原因呢?
我知道:首先按照 a 进行排序,然后在相同 a 值的情况下按照 b 进行排序,最后在相同 a 和 b 值的情况下按照 c 进行排序
但是我想知道为什么部分字段没有用到索引,原理是什么?
推荐文章: