Skip to content

Latest commit

 

History

History
7 lines (7 loc) · 1.13 KB

mysql索引失效有哪几种情况?.md

File metadata and controls

7 lines (7 loc) · 1.13 KB
  1. **使用“!=”或“<>”操作符:**对索引列使用这些操作符,将遍历全表数据,所以索引会失效。
  2. **对索引列进行计算或函数操作:**如果在查询时对索引列进行了运算或者使用了函数,那么数据库无法使用该索引。
  3. **隐式类型转换:**如果查询条件中的数据类型与索引列的数据类型不一致,MySQL会自动进行类型转换,这种情况下索引可能会失效。
  4. **联合索引未使用最左前缀原则:**在使用联合索引时,如果未按照索引的顺序进行查询,或者未使用到联合索引的第一个字段,那么索引也会失效。
  5. **like语句以通配符开头:**对于LIKE关键字,在使用模糊查询时,如果以'%'开头,则索引会失效而进行全表扫描。
  6. **NULL值问题:**对含有空值的列进行索引,那么在查询时如果包括NULL值,可能导致索引失效。
  7. **数据分布不均匀:**当表中某个数据段的值过于集中时(例如性别字段),即使该列建立了索引,优化器也可能不会选择使用它,因为全表扫描的代价可能更低。