首页 > 试题广场 >

关于索引失效的场景,以下描述正确的是:

[单选题]
关于索引失效的场景,以下描述正确的是:
  • WHERE子句中对索引列使用函数运算时,索引始终有效
  • 使用LIKE '%keyword%'前导通配符查询时,B-tree索引会失效
  • 复合索引中跳过第一列直接使用第二列查询时,索引完全有效
  • 对索引列进行IS NULL条件查询时,索引必然失效
在 MySQL 中,单列 B+ 树索引查询 is null 时索引不会失效,优化器可以正常走索引;但如果是复合索引,需满足最左前缀原则,否则索引可能失效。 举两个核心例子: 1. 单列索引:CREATE INDEX idx_name ON t_user(name); 查询 SELECT * FROM t_user WHERE name IS NULL; 会走 idx_name 索引。 2. 复合索引:CREATE INDEX idx_age_name ON t_user(age, name); 查询 SELECT * FROM t_user WHERE name IS NULL; 会失效(跳过了最左列 age); 查询 SELECT * FROM t_user WHERE age = 20 AND name IS NULL; 则生效。 另外要注意,is not null 在 MySQL 中也能走索引,但在部分老版本或特殊索引类型(如全文索引)下可能有例外。
发表于 今天 13:21:44 回复(0)