千家信息网

浅谈mysql使用limit分页优化方案的实现

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,Mysql limit分页语句用法与Oracle和MS SqlServer相比,mysql的分页方法简单的让人想哭。--语法:SELECT * FROM table LIMIT [offset,] r
千家信息网最后更新 2026年11月02日浅谈mysql使用limit分页优化方案的实现

Mysql limit分页语句用法

与Oracle和MS SqlServer相比,mysql的分页方法简单的让人想哭。

--语法:

SELECT * FROM table LIMIT [offset,] rows | rows OFFSET offset

--举例:

select * from table limit 5; --返回前5行select * from table limit 0,5; --同上,返回前5行select * from table limit 5,10; --返回6-15行

如何优化limit

当一个查询语句偏移量offset很大的时候,如select * from table limit 10000,10 , 最好不要直接使用limit,而是先获取到offset的id后,再直接使用limit size来获取数据。效果会好很多。

如:

select * From customers Where customer_id >=(select customer_id From customers Order By customer_id limit 10000,1) limit 10;

一、测试实验

mysql分页直接用limit start, count分页语句:

select * from product limit start, count

当起始页较小时,查询没有性能问题,我们分别看下从10, 100, 1000, 10000开始分页的执行时间(每页取20条),如下:

select * from product limit 10, 20 0.016秒select * from product limit 100, 20 0.016秒select * from product limit 1000, 20 0.047秒select * from product limit 10000, 20 0.094秒

我们已经看出随着起始记录的增加,时间也随着增大, 这说明分页语句limit跟起始页码是有很大关系的,
那么我们把起始记录改为40w看下(也就是记录的一半左右)

select * from product limit 400000, 20 3.229秒

再看我们取最后一页记录的时间

select * from product limit 866613, 20 37.44秒

像这种分页最大的页码页显然这种时间是无法忍受的。

从中我们也能总结出两件事情:

  • limit语句的查询时间与起始记录的位置成正比。
  • mysql的limit语句是很方便,但是对记录很多的表并不适合直接使用。

二、 对limit分页问题的性能优化方法

2.1 利用表的覆盖索引来加速分页查询

我们都知道,利用了索引查询的语句中如果只包含了那个索引列(覆盖索引),那么这种情况会查询很快。

因为利用索引查找有优化算法,且数据就在查询索引上面,不用再去找相关的数据地址了,这样节省了很多时间。

另外Mysql中也有相关的索引缓存,在并发高的时候利用缓存就效果更好了。

在我们的例子中,我们知道id字段是主键,自然就包含了默认的主键索引。现在让我们看看利用覆盖索引的查询效果如何:
这次我们之间查询最后一页的数据(利用覆盖索引,只包含id列),如下:

select id from product limit 866613, 20 

查询时间为0.2秒,相对于查询了所有列的37.44秒,提升了大概100多倍的速度。

那么如果我们也要查询所有列,有两种方法,

id>=的形式:

SELECT * FROM product WHERE ID > =(select id from product limit 866613, 1) limit 20

查询时间为0.2秒,简直是一个质的飞跃啊。

利用join

SELECT * FROM product a JOIN (select id from product limit 866613, 20) b ON a.ID = b.id

查询时间也很短,赞!

其实两者用的都是一个原理嘛,所以效果也差不多。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

查询 时间 索引 语句 起始 效果 数据 方法 很大 性能 时候 缓存 问题 页码 最大 差不多 不用 之间 也就是 事情 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 花魁咖啡 广州大一互联网络科技有限公司 互联网科技公司税收优惠 互联网科技卖菜 互联网中国科技 互联网科技缩写 卓越科技互联网 招聘 成都玖崟互联网科技有限公司乐商圈怎么样 深圳国际航运科技和互联网 须眉科技是互联网公司吗 小米互联网科技园设置 阿里互联网科技公司 栖莱科技互联网股份有限公司 互联网科技大奖都有哪些公司 城市宝互联网科技有限公司 产业互联网科技服务公司 易租星互联网科技有限公司 互联网科技职业技能培训学校 美国五大互联网科技公司市值多少 科技互联网专业务虚会材料 湖北九亚互联网络科技有限公司 亿人帮互联网科技有限公司 新华互联网科技 上海喔噻互联网科技 兼蜜互联网科技 互联网科技公司名称 南平创想时代互联网科技有限公司 语蝶互联网科技有限公司 互联网科技对化妆品行业 互联网科技快速发展优美句子
0