索引失效分析开篇:明明建了索引,为什么还是全表扫描? 你信心满满地给查询字段加上了索引,EXPLAIN 一看——type = ALL,全表扫描。索引白建了? 这种情况比想象中常见。索引不是建了就一定会用,最终决定"用不用索引、用哪个索引"的是 MySQL 的优化器。优化器基于成本预估来做选择——它不看语义,不看你的意图,只看哪种方案的 I/O + CPU 成本最低。 理解索引失效的各种场景,是写出高性能 SQL 的必修课。 一、索引失效的十大场景硅碳合伙人大约 13 分钟MySQL索引失效EXPLAIN优化