MySQL 索引失效

  1. 全列匹配
  2. 最佳左前缀法则
  3. 不在索引列上做任何操作(计算、函数、自动、手动类型转换),会导致索引失效
  4. 存储引擎不能使用索引中范围条件右边的列
  5. 尽量使用覆盖索引(只访问索引的查询(索引和查询列一致)),少用:select *
  6. mysql 再使用不等于(!=或者<>)的时候无法使用索引会导致全表扫描
  7. is null,is not null也无法使用索引
  8. like 以通配符开头(like ‘%abc‘),mysql索引失效会变成全表扫描的操作
  9. 字符串不加单引号索引失效
  10. 少用or,用他连接时索引回失效

优化口诀

全列匹配我最爱,最左前缀要遵守;

带头大哥不能死,中间兄弟不能断;

索引列上少计算,范围之后全失效;

LIKE百分写最右,覆盖索引不写星;

不等空值还有or,索引失效要少用;

相关推荐