星海

数据库 · 单选题 · 第 35 题

计算机基础面试八股 · 第 35 题

表上有联合索引 (a, b, c),下列哪个查询条件通常无法利用该索引快速定位?

  1. AWHERE a = 1
  2. BWHERE a = 1 AND b = 2
  3. CWHERE a = 1 AND b = 2 AND c = 3
  4. 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 条件里列的书写顺序则无关紧要,优化器会自动调整。

在线刷这套题:即时判分、错题本、闪卡复习,不用登录就能练。