43、什么是覆盖索引?MySQL的超大分页怎么处理?

本文讲述了如何通过使用覆盖索引提高数据库查询性能,特别是在处理大规模数据和复杂分页排序时,避免全表扫描,强调了选择性查询字段和利用主键或聚簇索引来减少回表查询的重要性。
摘要由CSDN通过智能技术生成

①覆盖索引不是索引类型,而是一种数据查询方式,指的是select查询语句使用到了索引,并且需要的字段在索引中都能找到,不需要进行回表查询。比如我们使用主键id查询,会直接走聚簇索引,一次索引扫描就能找到需要的全部数据,性能比较高。

按照非聚簇索引查询的时候,如果需要的字段在索引中不能全部找到,就会触发回表查询,所以我们应该尽量避免使用select*查询语句,尽量让返回的字段都是添加了索引的字段。

②超大分页一般是在数据量比较大的时候,使用了limit分页查询,并且需要对数据进行排序,这个时候效率就很低,我们可以使用覆盖索引加子查询的方案来解决。

我们先分页查询出数据的id字段,因为操作一个id字段比操作整行数据要快很多,确定了id列表后,我们再使用子查询来过滤,只查询这个id列表对应的数据即可。使用id查询的时候,采用了覆盖索引的方式,走的是聚簇索引,所以性能可以提升很多。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值