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 以通配符 % 索引失效

 

posted @ 2022-06-05 20:52  温故纳新  阅读(277)  评论(0编辑  收藏  举报