什么情况下索引会失效?
索引失效的场景
可能导致查询无法使用索引的原因包括:
对索引字段进行了运算或者使用了函数;
查询中的数据类型和字段类型不一致;
违反了索引的最左匹配原则;
全表扫描更快。
-- 找到 100 之后要遍历叶子结点,找出比 100 大的值 -- 评估查询行数接近数据总行数,优化器会选择全表扫描 EXPLAIN SELECT * FROM test t WHERE col1 > 100;
可能导致查询无法使用索引的原因包括:
对索引字段进行了运算或者使用了函数;
查询中的数据类型和字段类型不一致;
违反了索引的最左匹配原则;
全表扫描更快。
-- 找到 100 之后要遍历叶子结点,找出比 100 大的值
-- 评估查询行数接近数据总行数,优化器会选择全表扫描
EXPLAIN
SELECT *
FROM test t
WHERE col1 > 100;