如何评估 / 判断索引是否生效?常见索引失效场景有哪些?
评估索引是否生效需“三看”:看执行计划是否命中索引(EXPLAIN)、看扫描行数是否骤降(rows)、看查询耗时是否锐减(性能监控);
失效:
- 索引列用函数/参与计算
- 最左前缀原则
- LIKE以通配符 % 开头
- 使用 OR 连接条件,如果 OR 连接的条件中有一个列没有索引,那么整个查询可能无法使用索引。
- 使用 NOT IN, <>, != 操作符
这些否定操作符通常难以利用索引,因为它们代表的是一个非常大的范围,数据库倾向于全表扫描。
评估索引是否生效需“三看”:看执行计划是否命中索引(EXPLAIN)、看扫描行数是否骤降(rows)、看查询耗时是否锐减(性能监控);
失效: