MySQL面试题——联合索引

总结于JavaGuide

知识点总结

请解释一下 MySQL 的联合索引及其最左前缀原则

如果有索引 联合索引(a,b,c),查询 a=1 AND c=1 会走索引么?c=1 呢?b=1 AND c=1 呢? b = 1 AND a = 1 AND c = 1 呢?

回答

一、联合索引 & 最左前缀原则解释

  1. 联合索引(复合索引):基于多个字段组合创建 的索引,比如(a,b,c),索引数据会按「a 字段排序 → 同 a 值按 b 排序 → 同 b 值按 c 排序」的规则存储。
  2. 最左前缀原则:MySQL 联合索引的核心匹配规则,必须从索引的最左侧第一个字段开始匹配,才能触发索引;跳过左侧字段、直接匹配右侧字段,索引会完全失效;中间字段缺失时,仅能匹配左侧连续字段的部分索引,右侧字段无法利用索引。

二、基于联合索引(a,b,c)的 4 个查询场景逐一回答

✅ 1. a=1 AND c=1 → 会走索引(仅 a 字段的部分索引),c 字段无法利用索引;原因:匹配了最左的 a 字段,满足前缀要求,但跳过中间 b 字段,右侧 c 失效。

❌ 2. c=1 → 完全不走索引;原因:未匹配最左的 a 字段,直接查最右侧字段,违背最左前缀原则,触发全表扫描。

❌ 3. b=1 AND c=1 → 完全不走索引;原因:未匹配最左的 a 字段,直接查 b、c,无任何前缀匹配,索引失效

。✅ 4. b=1 AND a=1 AND c=1 → 走完整的联合索引(全索引命中) ;原因:MySQL 查询优化器会自动调整 AND 等值条件的顺序,最终等效 a=1 AND b=1 AND c=1,完整匹配索引所有字段。

相关推荐
一只鹿鹿鹿4 小时前
政务外网整体设计方案(PPT)
大数据·数据库·web安全·系统安全·流程图·政务
2603_965148115 小时前
社区与学习资源:从入门到精通的API选品学习路径
数据库·人工智能·python·学习·数据挖掘
AI砖家5 小时前
安全进入 Agent Loop:2027 年 Coding Agent 的决胜点
数据库·安全·codex·vibecoding
西柚小萌新5 小时前
【岗位面试】--成都博维数孪 - 工业 AI 解决方案顾问
人工智能·面试·职场和发展
wangqiaowq5 小时前
SQL server C盘空间占满的处理
数据库·sql
小 黄 鸡5 小时前
Flutter 面试必会知识点详解(从基础到进阶)
flutter·面试·职场和发展
文人sec5 小时前
SQL基础入门笔记 | 从零基础到掌握核心查询语句
数据库·笔记·sql
数字新视界5 小时前
机房动环监控提升运维效率
大数据·服务器·数据库·动环监控系统·动力与环境监控系统
SelectDB技术团队6 小时前
冷热分层从建到验:Storage Policy 创建、表级与分区级绑定、SHOW TABLETS 验证的完整命令
大数据·数据库·elasticsearch·搜索引擎·数据分析·apache doris·冷热分层
lambo mercy7 小时前
Day3:结构化输出
java·数据库·oracle