1. 程式人生 > >Mysql分頁,資料量大時limit優化

Mysql分頁,資料量大時limit優化

MYSQL的優化是非常重要的。其他最常用也最需要優化的就是limit。mysql的limit給分頁帶來了極大的方便,但資料量一大的時候,limit的效能就急劇下降。

同樣是取10條資料

select * from order limit 10000,10

select * from  order  limit 0,10
查詢耗時就不是一個數量級別的。

優化方案:首先獲取到offset的id然後直接使用limit size來獲取資料

1、offset比較小的時候。

select * from order limit 10000,10       
Select * From order Where vid >= (Select vid From order o2 By vid limit 10,1) limit 10  

前者查詢時間在0.0004-0.0005之間,後者查詢時間在0.0005-0.0006之間

結論:偏移offset較小的時候,直接使用limit較優。這個顯然是子查詢的原因

2、offset大的時候。

select * from order limit 10000,10    
Select * From order Where vid >= (Select vid From order o2 By vid limit 10000,1) limit 10   

前者查詢時間0.0187,後者查詢時間0.0061左右,後者比前者優數倍