计算机教程

当前位置:3522.com > 计算机教程 > mysql3522.com limit速度优化分析

mysql3522.com limit速度优化分析

来源:http://www.4sports-uk.com 作者:3522.com 时间:2020-04-24 14:57

一、结论

mysql教程数据库教程的优化是相当重要的。其他最为常用也是最为需要优化的就是limit。mysql的limit给分页带来了极大的方便,但数据量一大的时候,limit的性能就急剧下降。

语法结构: limit offset, rows

  同样是取10条数据

结论:rows 相同条件下,offset 值越大,limit 语句性能越差

 

二、测试

select * from yanxue8_visit limit 10000,10       select * from yanxue8_visit limit 0,10      就不是一个数量级别的。

执行测试: 5750000 条数据

  网上也很多关于limit的五条优化准则,都是翻译自mysql手册,虽然正确但不实用。今天发现一篇文章写了些关于limit优化的,很不错。

3522.com,sql 1 执行时间:

  文中不是直接使用limit,而是首先获取到offset的id然后直接使用limit size来获取数据。根据他的数据,明显要好于直接使用limit。这里我具体使用数据分两种情况进行测试。(测试环境win2033 p4双核 (3ghz) 4g内存mysqllimit查询)

sql 6执行时间:

  1、offset比较小的时候

三、优化

 

方式一:可根据主键ID等其他索引字段定位到数据位置,然后使用 limit 0, rows

1.select * from yanxue8_visit limit 10,10     多次运行,时间保持在0.0004-0.0005之间

如: select * from gift_record_0 where id = 43611207 limit 1000 0.14 s

 

方式二(根据业务需求):针对不需要展示所有数据的业务,如只展示前2000条数据即可,limit 0, 2000 则能满足。

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左右

 

本文由3522.com发布于计算机教程,转载请注明出处:mysql3522.com limit速度优化分析

关键词: 3522.com

上一篇:Mysql数据表中的蠕虫复制使用方法

下一篇:没有了