什么是覆盖索引?


💖The Begin💖点点关注,收藏不迷路💖

在数据库查询中,覆盖索引是一个能显著提升性能的特性。即当查询的列完全包含在索引中时,数据库就能直接从索引中读取数据,无需再访问数据表本身,这就是覆盖索引。

1、覆盖索引的优势

  • 减少I/O:直接通过索引获取数据,减少磁盘访问。
  • 提升速度:查询更快,因为跳过了数据行的查找。

2、使用场景

以MySQL的InnoDB引擎为例,如果你在组合索引上查询的列全部包含在索引中,且查询条件符合索引的最左前缀原则(或虽不符合但索引能覆盖查询列),那么就能利用覆盖索引。

3、示例

假设有user_like表,有组合索引(user_id, blog_id)

  • 查询SELECT blog_id FROM user_like WHERE user_id = 13;:覆盖索引,因为blog_id在索引中,且user_id满足最左前缀。
  • 查询SELECT user_id FROM user_like WHERE blog_id = 1;:也利用覆盖索引,尽管blog_id不是最左前缀,但索引能覆盖查询列。

4、注意事项

  • 不是所有索引类型都支持覆盖索引,如哈希索引和全文索引。
  • 设计索引时,考虑查询模式,尽量利用覆盖索引。

在这里插入图片描述


💖The End💖点点关注,收藏不迷路💖
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Seal^_^

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值