MySQL優化Limit分頁
很多時候、我們需要選擇出從指定位置開始的指定行數、此時、limit笑瞭
對於limit的設定是:
limit x,y
表示從第x行開始選擇y條記錄
在業務需要分頁操作的時候、我們通常采用limit+order by這對洗剪吹組合、高端洋氣上檔次
然而、當翻到非常靠後的頁面時、MySQL需要花費大量的時間來掃描需要丟棄的數據
此時比較好的策略是使用延遲關聯:
通過使用覆蓋索引查詢返回需要的主鍵、再根據這些主鍵關聯原表獲得需要的行
具體請看下面的一個例子
假如有這樣一個查詢:
[plain] select film_id,actor,description from film where actor='WaterBin' order by title limit 100000,5
我們可以這樣改造:
[plain] select film.film_id,film.actor,film.description from film inner join ( select film_id from film where f.actor='WaterBin' order by title limit 100000,5 ) as f using(film_id);