# MySQL
# MySQL中索引失效是怎么回事?
今天学习五种『索引失效』的情况:
- 被索引字段发生了隐式类型转换;
- 被索引字段使用了表达式计算;
- 被索引字段使用了函数;
这三种情况,都相当于被索引字段上发生了某种计算。这时,MySQL 的 SQL 语句执行器无法预估计算后被索引字段所对应的 BTREE 索引树的叶子节点排列情况,因而索引无法被使用。
- like 关键字后,使用了左模糊匹配;
- 使用的索引列,不是联合索引的最左列。
这两种情况,都违反了 BTREE 索引树的检索过程中要遵从的最左匹配原则,最终也会导致索引树无法被使用。
Tip:可以使用 explain
关键字,来查看本次 SQL 是否使用了索引。