





















WHERE 或 JOIN 中对索引列进行函数/表达式处理
在索引列上使用隐式或显式类型转换
对索引列使用前缀模糊匹配之外的模糊匹配(导致无法使用普通 B-Tree 索引)
左前缀索引中查询不使用最左前缀原则
OR 条件造成索引无法使用(或效率低)
不等式(<>、!=、IS NULL、IS NOT NULL)或范围查询打断复合索引后续列的使用
数据分片/分区与查询条件不匹配(导致全表扫描某些分区)
索引选择性太差或基数低(例如布尔字段、低基数枚举)
索引字段包含大量 NULL 值(可能影响优化器选择)
索引列顺序不当(复合索引顺序与查询条件顺序不匹配)
使用 NOT、IS NULL、NOT IN、<> 等否定条件通常不能走索引
ORDER BY / GROUP BY 无法使用索引(列顺序或额外列导致文件排序)
隐式或显式使用 DISTINCT/函数导致临时表或文件排序
索引失效因统计信息不准或优化器选择错误
小表或查询返回行数很大时,优化器可能选择全表扫描(基于成本估算)
使用 LIKE 时字符集或排序规则(collation)问题影响索引匹配
隐式索引不可用情况:长前缀索引、压缩或函数索引不被支持(版本/存储引擎限制)
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。