mysql如何對海量數據進行價格排序分頁
1 回答

有只小跳蛙
TA貢獻1824條經驗 獲得超8個贊
分頁查詢一般 DBA 想到的辦法是在某個(如ID,create_time)字段上加組合索引。這樣條件排序都能有效的利用到索引,性能迅速提升。
因為如果當 LIMIT 子句變成 “LIMIT 1000000,10” 時,你會抱怨:我只取10條記錄為什么還是慢?
要知道數據庫也并不知道第1000000條記錄從什么地方開始,即使有索引也需要從頭計算一次。出現這種性能問題,多數情形下是程序員偷懶了。在前端數據瀏覽翻頁,或者大數據分批導出等場景下,是可以將上一頁的最大值當成參數作為查詢條件的。SQL 重新設計如下:
SELECT *
FROM 表
WHERE create_time > '2017-07-04 09:00:00'
ORDER BY create_time limit 10;
這樣查詢時間基本固定,不會隨著數據量的增長而發生變化。
添加回答
舉報
0/150
提交
取消