【677、你知道哪些让索引失效的情况】

77 阅读1分钟

索引失效指的是在 SQL 查询过程中,索引不会被使用,导致查询效率低下。以下是一些可能导致索引失效的情况:

  1. 对索引列进行了函数操作,例如 WHERE upper(name) = 'ABC',这会导致索引失效,因为数据库无法在索引中查找大小写不敏感的值。
  2. 索引列参与了数学运算,例如 WHERE age + 5 > 18,这也会导致索引失效。
  3. 对索引列使用了隐式类型转换,例如 WHERE name = 1,这会导致索引失效,因为数据库会将数字类型转换成字符串类型,从而无法在索引中查找。
  4. 在索引列上进行了表达式操作,例如 WHERE substring(name, 1, 3) = 'ABC',这会导致索引失效。
  5. 查询条件使用了 OR 连接多个条件,例如 WHERE name = 'ABC' OR age = 18,这会导致索引失效,因为无法在索引中同时查找两个列。
  6. 对索引列进行了 NOT 操作,例如 WHERE NOT name = 'ABC',这会导致索引失效。
  7. 在查询中使用了 LIKE 操作符,例如 WHERE name LIKE '%ABC%',这会导致索引失效,因为无法使用索引加速模糊匹配。