mysql实现分页查询功能的方法
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,小编给大家分享一下mysql实现分页查询功能的方法,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!mysql分页查询的方法:1、用具体字段代替【*】;2、先查寻索引;3、使用【betwee
千家信息网最后更新 2026年11月01日mysql实现分页查询功能的方法
小编给大家分享一下mysql实现分页查询功能的方法,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!
mysql分页查询的方法:1、用具体字段代替【*】;2、先查寻索引;3、使用【between … and】,id必须是连续递增的;4、保留上一页记录所在id。
mysql分页查询的方法:
简述
通常在MySQL中通过limit #{limit},#{offset}来进行分页查询。
当表中记录较多且页数(#{limit})较大时,分页查询效率变慢。
变慢的原因时,分页查询时,会先查询出limit + offset条记录,然后截取后面的offset记录。
本文以实际1.4亿的表big_table为例,记录如何优化分页查询。
测试说明
测试表:big_table,数据量:1.4亿。
原始SQL(4500ms)
-- 原始分页查询,耗时:4500msselect * from big_tablelimit 2000000,10;
慢的原因:
1、查询条件为*
2、limit = 2000000太大
优化一(推荐):用具体字段代替*(1600ms)
-- 用明确字段代替*,耗时:1600msselect id,uid,media_id,media_name,news_id,comment from big_tablelimit 2000000,10;
优化二:先查寻索引(450ms)
-- 方法1:先对索引进行分页查询,耗时:450msselect * from big_table AS h inner join (select id from big_table limit 2000000,10) AS ss on h.id = ss.id;-- 方法2:先查询出起始位置的索引,耗时:450msselect * from big_tablewhere id > (select id from big_table limit 2000000,1)limit 10;
优化三:between … and(5ms)
限制:id必须是连续递增的。
-- 上一页保留最后一条记录所在id,耗时:5msselect * from big_tablewhere id between 4882489 and 4882489 + 10 ;
优化四(推荐):保留上一页记录所在id(5ms)
限制:需要保留上一页的最后一条记录所在id
-- 上一页需要保留最后一条记录所在id,耗时:5msselect * from big_tablewhere id > 4882488limit 10;
看完了这篇文章,相信你对mysql实现分页查询功能的方法有了一定的了解,想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!
查询
方法
所在
上一
索引
字段
功能
查询功能
原始
原因
篇文章
推荐
测试
限制
较大
位置
完了
实际
效率
数据
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
天津市摩尔互联网科技
A股互联网金融科技公司
互联网巨头反垄断金融科技
互联网科技战争
互联网科技媒体
易通互联网络科技有限公司
互联网科技logo
上海万想互联网科技
互联网 科技服务平台
中正互联网科技招聘
互联网校园科技培训
宁夏科技产业互联网案例
互联网科技与大数据专业
互联网科技和信息
如何创新互联网科技
互联网科技股为什么大涨
上海万顺科技互联网有限公司招聘
陕西彩京云互联网科技有限公司
承德科技产业互联网平台
六子台科技互联网展会
中关村互联网科技集团
互联网医疗科技
互联网科技作文
友谊互联网络科技
安控科技rtu产品工业互联网
互联网科技中介
昭通云南众福互联网科技有限公司
杭州披云加互联网科技有限公司
吉林省码上互联网科技电话
互联网金融金融科技