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与业务查询为准。