可以采用以下几种方式,来避免索引失效:
-
使用组合索引时,需要遵循“最左前缀”原则;
-
不在索引列上做任何操作,例如计算、函数、类型转换,会导致索引失效而转向全表扫描;
-
尽量使用覆盖索引(之访问索引列的查询),减少 select * 覆盖索引能减少回表次数;
-
MySQL在使用不等于(!=或者<>)的时候无法使用索引会导致全表扫描;
-
LIKE以通配符开头(%abc)MySQL索引会失效变成全表扫描的操作;
-
字符串不加单引号会导致索引失效(可能发生了索引列的隐式转换);
-
少用or,用它来连接时会索引失效。
注意:本文归作者所有,未经作者允许,不得转载