免费 域名 空间 相册 邮箱 资源 网赚 试用 优惠 工具
教程 设计 三维 学院 办公 网页
素材 PSD 矢量 网页 PPT 动画
美女 唯美 大生活 美图 风景 时尚艺
资讯 综合 专题 热点
您的位置: 起源之家 > 网络学院 > 建站资讯 > 文章正文

优化MySql limit处理大数据量分页方法与实例详解

时间:10-26 12:16 来源:广信之家 整理:广信小编 我要评论(0)
字号:T|T
内容提要:
  广信之家就本文中给大家带来优化MySql limit处理大数据量分页方法与实例详解,帮助朋友们参考学习mysql查询中的limit语句在处理大数量所分页时的优化方法。Mysql的limit给分页带来了很大方便,但数据量一大时,limit的性能就急剧下降。

广信之家就本文中给大家带来优化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语句在处理大数量的高效率。

    相关阅读:

    顶一下
    (0)
    0%
    踩一下
    (0)
    0%
    免责申明:以上内容仅代表原创者观点,其内容未经本站证实,优化MySql limit处理大数据量分页方法与实例详解对以上内容的真实性、完整性不作任何保证或承诺,转载目的在于传递更多信息,由此产生的后果与优化MySql limit处理大数据量分页方法与实例详解无关;如以上转载内容不慎侵犯了您的权益,请联系我们将会及时处理。
    [责任编辑:广信小编]

    精彩图文

    登录 (请登录发言,并遵守 相关规定)
    如果你对起源之家有任何意见或建议,请到交流平台反馈。到留言板反馈