mysql实现分页查询功能的方法
发表于:2025-11-11 作者:千家信息网编辑
千家信息网最后更新 2025年11月11日,小编给大家分享一下mysql实现分页查询功能的方法,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!mysql分页查询的方法:1、用具体字段代替【*】;2、先查寻索引;3、使用【betwee
千家信息网最后更新 2025年11月11日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安全错误
数据库的锁怎样保障安全
网络安全法谷歌
jdbc删除数据库表格
数据库百万级查一天多长时间
RADIUS服务器
山寨币手机软件开发
网络安全世界杯2021
福州亿讯网络技术
安全狗服务器流量
genbank数据库的应用功能
适合做家庭服务器的cpu
网络安全正能量的句子简短
负载均衡服务器有用吗
c端用kv数据库
桃花源记手游服务器
高凝聚底耦合软件开发
amazon 2019 服务器
数据库索引建立原则
数据库的分析报告
vb调用mysql数据库
数据库设计与优化论文
阿里云服务器4核和8核速度区别
我的世界寻找好玩的服务器
无法连接到服务器1104
上海沪镜网络技术有限公司
博世网络安全DSP
贵池区自动化软件开发服务攻略
软件开发培训 小说
电影院的网络技术
工业互联网 汉威科技
网吧大型服务器