mysql实现分页查询功能的方法
发表于:2025-01-23 作者:千家信息网编辑
千家信息网最后更新 2025年01月23日,小编给大家分享一下mysql实现分页查询功能的方法,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!mysql分页查询的方法:1、用具体字段代替【*】;2、先查寻索引;3、使用【betwee
千家信息网最后更新 2025年01月23日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安全错误
数据库的锁怎样保障安全
多益网络技术怎么样
上海政务网络安全
云文档怎么恢复数据库
东莞软件开发驻场好不好
网络安全技术封锁
怎么解除网络安全模式
容器搭建免费邮件服务器
宁波慈溪手机游戏软件开发
武汉高职学校软件开发哪个好
新版网络安全审查办法宣传
战神互联网科技圈
浙江专业网络技术服务基础
昆山专业性网络技术服务电话
服务器被入侵木马文件删除
教育科学期刊数据库英文版
大数据库提交失败怎么办
昆明网络安全检查部门
kld数据库 维度
珲春怡丰软件开发有限公司
面试的数据库分页
常用的网络安全日志分析工具
戴尔r210服务器尺寸
湖南兆联辰光网络技术有限公司
软件开发所需的资源
网络安全信息等级测评
宜春市的软件开发公司有几家
玩游戏为啥总是出现连接服务器
招聘网络安全师南京
江西网络安全培训服务机构
关系数据库理论w