索引失效的8种情况

 
0 左边的值未确定,那么无法使用此索引。(like '_雷', like '%雷') 
1 计算、函数导致索引失效
2 类型转换(自动或手动)导致索引失效
3 范围条件右边的列索引失效
EXPLAIN SELECT SQL_NO_CACHE * FROM student WHERE student.age=30 AND student.classId>20 AND student.name = 'abc'; --name上的索引失效
EXPLAIN SELECT SQL_NO_CACHE * FROM student WHERE student.age=30 AND student.name = 'abc' AND student.classId > 20 ; -- name上的索引可用
4 不等于(!= 或者<>)索引失效
5 is null可以使用索引,is not null无法使用索引
6  like以通配符%开头索引失效
7 or 前后存在非索引的列,索引失效
数据库和表的字符集统一使用utf8mb4(不统一可能导致失效)
posted @ 2023-06-06 21:40  言和1225  阅读(260)  评论(0)    收藏  举报