mysql limit查询优化

MySQL的limit给分页带来了极大的方便,但数据量一大的时候,limit的性能就急剧降低。
一样是取10条数据
select * from yanxue8_visit limit 10000,10   
select * from yanxue8_visit limit 0,10  
一、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较优。这个显然是子查询的缘由

二、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了
相关文章
相关标签/搜索