如何优化MySql数据库中的 limit处理大数据量分页方法与实例详解

如何优化MySql数据库中的 limit处理大数据量分页方法与实例详解

学习教程tuzi2022-09-03 15:21:35A+A-

dedecms模板网就本文中给大家带来优化MySql limit处理大数据量分页方法与实例详解,帮助朋友们参考学习mysql查询中的limit语句在处理大数量所分页时的优化方法。

Mysql的limit给分页带来了很大方便,但数据量一大时,limit的性能就急剧下降。
例如,取10条数据:

select * from yanxue8_visit limit 10000,10
select * from yanxue8_visit limit 0,10

这二个sql语句在执行性能上,绝不是一个数量级别的。

关于mysql limit的优化,这里贴出一段文字:
对limit的优化,不是直接使用limit,而是首先获取到offset的id,然后直接使用limit size来获取数据。
根据它的数据,明显要好于直接使用limit。

这里我们使用数据分两种情况进行测试。(测试环境win2033+p4双核 (3GHZ) +4G内存 Mysql 5.0.19)

1、offset比较小时。 

select * from yanxue8_visit limit 10,10
#多次运行,时间保持在0.0004-0.0005之间
Select * From yanxue8_visit Where vid >=(
Select vid From yanxue8_visit Order By vid limit 10,1
) limit 10;
#多次运行,时间保持在0.0005-0.0006之间,主要是0.0006

结论:
偏移offset较小时,直接使用limit较优。
这个很显然是子查询的原因。

2、offset大时。

select * from yanxue8_visit limit 10000,10
#多次运行,时间保持在0.0187左右
Select * From yanxue8_visit Where vid >=(
Select vid From yanxue8_visit Order By vid limit 10000,1
) limit 10;

多次运行,时间保持在0.0061左右,只有前者的1/3。
可以预计offset越大,后者越优。
以后再写limit语句时要注意了,好好优化下Mysql。
 
据表 collect ( id, title ,info ,vtype) 就这4个字段,其中 title 用定长,info 用text, id
是逐渐,vtype是tinyint,vtype是索引。

这是一个基本的新闻系统的简单模型。
现在往里面填充数据,填充10万篇新闻。
最后collect 为 10万条记录,数据库教程表占用硬盘1.6G。OK ,看下面这条sql语句:
select id,title from collect limit 1000,10; 很快;基本上0.01秒就OK。

再来看这条语句:

select id,title from collect limit 90000,10;

从9万条开始分页,结果8-9秒完成,性能严重的差啊。

可以这样优化:

select id from collect order by id limit 90000,10; 很快,0.04秒就OK。

使用id主键做索引,速度没得说。

改进后的方法:

select id,title from collect where id>=(select id from collect order by id limit 90000,1) limit 10; 

 
这条语句依然是用了id做索引的结果。

 

希望通过本文的实例详解,能帮助朋友们进一步的了解mysql的limit语句在处理大数量的高效率。


点击这里复制本文地址

声明

本站发布所有广告信息、下载资源,均来自互联网,非本站自制,与本站无关。 如有侵犯您的合法权益请来信告之。我们会在三个工作日内予以清除。


本站中所有资料、资源文件均来自于网络搜索,仅作为技术学习研究之用,请必须在24小时内删除所下载文件,切勿用于商业用途,否则由此引发的法律纠纷及连带责任本站和发布者概不承担。


本站保证站内提供的所有可下载资源(软件等等)都是按“原样”提供,本站未做过任何改动;但本网站不保证本站提供的下载资源的准确性、安全性和完整性;同时本网站也不承担用户因使用这些下载资源对自己和他人造成任何形式的损失或伤害。 


访问本站的用户必须明白,[资源爱好者]对提供下载的软件等不拥有任何权利,其版权归该下载资源的合法拥有者所有。


本站所有资源均不提供相关技术服务,如果源码下载地址失效则请联系站长进行补发。


本站所有资源展现图片仅供参考

资源爱好者 © 本站发布所有资源,均来自互联网,非本站自制,分享目的仅供大家学习与参考,与本站无关。
如有侵犯您的合法权益请来信告之。我们会在三个工作日内予以清除。邮箱:admin?aihao.org
关于我们|广告合作|网站地图|冀ICP备14009590号|冀公网安备 13018302000072号