[转]MySQL的limit查询优化

正文转自:http://www.php100.com/html/webkaifa/database/Mysql/2010/1208/6985.html

产的篇章主要是针对MySQL
limit查询优化的具体内容的牵线,我们大家还晓得MySQL数据库的优化是相当重要之。其他最为常用也是极需要优化的就是limit。MySQL的limit给分页带来了巨大的惠及,但数据量一分外之时段,limit的特性就急剧下降。

  同是得到10修数据

 

  1. select * from yanxue8_visit limit 10000,10       
  2. select * from yanxue8_visit limit 0,10    

  就不是一个数量级别之。

  网上也很多关于limit的五长条优化轨道,都是翻译自MySQL手册,虽然不利而未实用。今天发现一律篇稿子写了来关于limit优化的,很正确。

  文中莫是直接用limit,而是首先取得到offset的id然后径直下limit
size来获取数据。根据外的多寡,明显要好让直接利用limit。这里我切实应用数据分点儿栽状态展开测试。(测试环境win2033+p4双双核
(3GHZ) +4G内存MySQLlimit查询)

  1、offset比较小之时节

 

  1. 1.select * from yanxue8_visit limit 10,10   

  多次运转,时间维系以0.0004-0.0005之间

 

  1. Select * From yanxue8_visit Where vid >=(      
  2. Select vid From yanxue8_visit Order By vid limit 10,1  ) limit 10   

  多次运作,时间保持以0.0005-0.0006里头,主要是0.0006

  结论:偏移offset较小之上,直接运用limit较完美。这个明显是分段查询的原委。

  2、offset大的时候

 

  1. select * from yanxue8_visit limit 10000,10   

  多次运行,时间保持在0.0187荒谬右

 

  1. Select * From yanxue8_visit Where vid >=(      
  2. Select vid From yanxue8_visit Order By vid limit 10000,1  ) limit 10    

  多次运转,时间保持在0.0061左右,只有前者的1/3。可以预测offset越怪,后者越优。

  以后如留心改正自己的limit语句,优化一下MySQL了

网站地图xml地图