MySQL 覆盖索引是什么?有什么好处?
覆盖索引 = 查询所需的列全部包含在索引中,无需回表。例如 idx(name, age),SELECT name, age FROM t WHERE name='x' 时只扫描该索引即可返回,叶子节点已含 name/age(二级索引叶子有索引列+主键,若查询列 ⊆ {索引列, 主键} 即覆盖)。好处:① 减少回表 IO(少一次随机读);② 某些情况下可避免排序(索引有序);③ 性能显著提升。实践:高频查询设计联合索引使其覆盖(select 需要的列尽量进索引,但别过度加列)。
一起交流
分享经验,让问题更进一步
讨论,从你的观点开始
还没有回复,欢迎补充经验或分享不同的思路。