索引哪些情况下会失效呢?
- 在索引列上使用函数或表达式:索引可能无法使用,因为 MySQL 无法预先计算出函数或表达式的结果。例如:
SELECT * FROM table WHERE YEAR(date_column) = 2021
。 - 使用不等于(
<>
)或者 NOT 操作符:因为它们会扫描全表。 - 使用 LIKE 语句,但通配符在前面:以“%”或者“_”开头,索引也无法使用。例如:
SELECT * FROM table WHERE column LIKE '%abc'
。 - 联合索引,但 WHERE 不满足最左前缀原则,索引无法起效。例如:
SELECT * FROM table WHERE column2 = 2
,联合索引为(column1, column2)
。
THE END
暂无评论内容