Skip to content
极高进阶

一句话答案

覆盖索引指查询字段全在索引中无需回表,explain 中 Extra 显示 Using index,是 SQL 优化的重要手段。

核心要点

回表过程: 二级索引查到主键值 → 主键索引查完整行数据

优化: 建联合索引覆盖 SELECT 的字段 → 避免回表 → 性能大幅提升

追问与易错

追问方向:

  • 怎么判断用了覆盖索引?
  • 覆盖索引为什么提升性能?
  • 联合索引顺序对覆盖索引有影响吗?

易错点:

  • ❌ SELECT * 也能走覆盖索引——不行
  • ❌ 为了覆盖建很宽的联合索引——影响写入

💡 记忆锚点

回表就是查了两次索引树:先在二级索引的"目录"里查到主键号码,再拿号码去聚簇索引的"档案柜"翻完整资料。覆盖索引就是在目录上直接印了你要的所有信息,不用再跑一趟档案柜——EXPLAIN 看到 Using index 就说明免了这趟跑腿。所以别写 SELECT *,按需查字段才能享受覆盖索引。