[Mysql] Limit分頁性能陷阱

由於需要支持多種數據庫,分頁查詢的sql寫成如下的樣子:

SELECT * FROM (
SELECT * FROM tb
) t
LIMIT 0,50

結果,4w總數,每頁取50條,竟然需要2.5s!

經過反覆調試,發現去掉嵌套,只需100ms!! 做了一些特殊處理後,sql改成:

SELECT * FROM tb
LIMIT 0,50

思考:在嵌套外面加LIMIT,子查詢需要全部檢索,因此耗時;不用嵌套時,查到需要的50條就返回了,所以較快。

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