limit分頁優化

2021-07-11 20:50:26 字數 481 閱讀 7009

對於有大資料量的mysql表來說,使用limit分頁存在很嚴重的效能問題。

查詢從第1000000之後的30條記錄:

sql**1:平均用時6.6秒 select * from `cdb_posts` order by pid limit 1000000 , 30

sql**2:平均用時0.6秒 select * from `cdb_posts` where pid >= (select pid from `cdb_posts` order by pid limit 1000000 , 1) limit 30

因為要取出所有字段內容,第一種需要跨越大量資料塊並取出,而第二種基本通過直接根據索引字段定位後,才取出相應內容,效率自然大大提公升。

可以看出,越往後分頁,limit語句的偏移量就會越大,兩者速度差距也會越明顯。

實際應用中,可以利用類似策略模式的方式去處理分頁,比如判斷如果是一百頁以內,就使用最基本的分頁方式,大於一百頁,則使用子查詢的分頁方式。

Limit分頁優化

1.直接用limit start,count分頁語句,也是我程式中用的方法 select from product limit start,count 當起始頁較小時,查詢沒有效能問題,我們分別看下從10,100,1000,10000開始分頁的執行時間 每頁取20條 如下 select from p...

LIMIT分頁優化

在系統中需要分頁的操作通常會使用limit加上偏移量的方法實現,同時加上合適的order by 子句。如果有對應的索引,通常效率會不錯,否則mysql需要做大量的檔案排序操作。乙個非常令人頭疼問題就是當偏移量非常大的時候,例如可能是limit 10000,20這樣的查詢,這是mysql需要查詢100...

優化limit分頁

問題 訂單資料大約90萬 每頁展示20條記錄,當直接點選尾頁時,呼叫服務超時 sql如下 select from t order salary where create time 2018 05 10 00 00 00 order by create time limit 900000,20 lim...