mysql limit分頁(偏移量)過大時優化問題

先說一下limit分頁語法

select * from user_address limit 100000,10

limit後跟兩個參數,第一個參數爲從第幾個數據開始,第二個參數爲取多少個數據。

第一個參數也叫偏移量,初始值是0

如果數據量很小,這麼寫分頁當然沒問題,但是當數據量大起來的時候,查詢速度就會慢很多。

如:select * from user_address limit 100,10 查詢用時0.011S

select * from user_address limit 100000,10 查詢用時0.618S

結果可看的出來,便宜量大起來時查詢速度就會變慢,那麼優化一下寫法。

select * from user_address where id >= (select id from user_address order by id limit 100000,1) limit 10   查詢用時0.068S

但這種寫法適用於偏移量大的結果,實際使用要根據業務場景選擇相應策略。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章