索引失效的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 前后存在非索引的列,索引失效
8 数据库和表的字符集统一使用utf8mb4(不统一可能导致失效)

浙公网安备 33010602011771号