数据库 · 单选题 · 第 35 题
计算机基础面试八股 · 第 35 题
表上有联合索引 (a, b, c),下列哪个查询条件通常无法利用该索引快速定位?
- AWHERE a = 1
- BWHERE a = 1 AND b = 2
- CWHERE a = 1 AND b = 2 AND c = 3
- DWHERE b = 1 AND c = 2
答案
D D. WHERE b = 1 AND c = 2
解析
联合索引先按 a 排序,a 相同再按 b,再按 c,这就是最左前缀原则。缺少 a 时,b 和 c 在整棵树上是无序的,无法用二分定位。MySQL 8.0 的跳跃扫描(skip scan)在 a 的取值很少时能部分利用这种索引,但这只是特例,不能依赖。WHERE 条件里列的书写顺序则无关紧要,优化器会自动调整。