白狗子的博客

「天上浮云如白衣,斯须改变如苍狗。」——杜甫

MySQL-索引覆盖

2026年10月16日·Admin·3 次浏览

MySQL 索引覆盖(Covering Index)

是什么

查询所需列全部在某个二级索引的 B+ 树叶子节点上即可拿到,无需再回表查聚簇索引(主键索引)取整行,称为覆盖索引(或索引覆盖)。

EXPLAIN 中常见 Using index 即表示走了覆盖。

为什么快

  • 少一次回表 I/O。
  • 二级索引叶子通常比聚簇叶子更小,同样内存能缓存更多页。

示例思路

索引 (a, b),查询 SELECT a, b FROM t WHERE a = ? —— 若只需 a,b,可能覆盖;SELECT * 往往要回表。

注意

  • 不能为了覆盖盲目加宽索引,写入成本与空间会上升。
  • 以实际 EXPLAIN 与业务查询为准。

© 2025 My Blog. Built with Nuxt.js v4