mysql 索引失效的情况
1 违背了最左前缀规则导致索引失效;
mysql 5.7 之后的版本只要包含了最左索引索引,就能使用到相应的索引;
2 在索引列上进行 计算,函数,类型转换 导致索引失效
3 范围查找之后的索引失效
比如在表 student 建立联合索引 (age,classId,name)
查询 where age = 30 and classId > 20 and name = 'abc';
由于 classId 使用了 范围查找,导致 name 所在的索引失效
解决方法:把范围查找放在最后 where age = 30 and name = 'abc' and classId > 20 ;
4 不等于 != <> 索引失效
解决方法:使用覆盖索引(select 的字段都在索引列上)
5 is null 可以使用索引,is not null 无法使用索引
6 like 以通配符 % 索引失效