索引失效的场景

  1. 对索引使用左或者左右模糊匹配 因为索引是从前往后依次匹配的
  2. 对索引使用函数、表达式计算、隐式转换
  3. 联合索引非最左匹配
  4. or 前面是索引后面不是 也走不了索引。
  5. 两列作比较
  6. != not in 、is not null、和not exists
  7. 统计信息终重复率太高 原因:重复度太高的话,索引扫到的大多数是重复的,这些数据最后可能也需要去扫描表。假如性别,100万数据 有50万重复的,先扫描了索引过滤了50完数据, 还需要扫描表取这个50万数据,这50完数据分布也可能不均匀,有可能为了扫描这50万数据需要对全表进行扫描, 整体相比直接全表扫描,多了对索引的扫描,性能可能会更差。因此重复度太高的不走索引。
    但是有时可能是统计信息不准确导致的, 需要更新下统计信息即可。或者让sql强制走索引观察下执行速率。
posted @ 2023-04-23 10:16  森林中大鸟  阅读(20)  评论(0)    收藏  举报