MySQL系列-优化之分页查询

本文介绍了MySQL分页查询的优化方法,包括避免使用offset,利用索引进行排序,以及如何实现上一页、下一页和跳页功能。强调了在分页时先按索引排序的重要性,解释了offset的性能问题,并提供了替代解决方案。
摘要由CSDN通过智能技术生成

1.分页查询之前先按索引排序

我们经常会上一些小说网站看小说,他们总是会把最近更新了的小说放在最前面,也就是第一页,而很久没更新的就放在后面了。那么这样网站是如何实现的呢?我的猜想有一张小说表,表里面一个last_update表示最后更新字段,并且对这个字段建立了索引,按last_update从大到小排序之后再按需求的页面大小进行分页。

那为什么分页查询总是要排序呢?

由上面的例子可以看出,这个是需求导致的,而且还有效率因素。下面举例说明:

表的描述如下:

只有id主键索引。

假设我们需要前三条数据,执行sql【explain select * from t1 limit 3;】

因为我们没有进行排序,mysql不知道要哪前三条,是id大呢,还name大呢?,mysql晕了,只能进行全表扫描来获取数据表的前三条数据了。所以范围类型为ALL。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值