N 筆資料查詢
SELECT * FROM 成績單 LIMIT 3 // 取成績單前三筆資料
SELECT * FROM 成績單 ORDER BY 分數 DESC LIMIT 3 // 取分數前三名的資料
SELECT * FROM 成績單 ORDER BY 分數 DESC LIMIT 3, 7 // 取第四名到第十名的資料
分頁查詢
隨著查詢筆數越來越多,網站可能就會需要用分頁來表示查詢結果。
這裡會出現一個問題 Offset ( LIMIT 的第1個參數 ) 越大,查詢速度越慢。
SELECT * FROM 成績單 LIMIT 100000, 1 // 大 Offset
Google 的結果是 InnoDB 會有的情況,InnoDB 會掃 100001 筆資料,然會再把 100000 筆資料給捨棄,導致查詢速度越來越慢。所以解決方法為先只掃索引。
SELECT * FROM 成績單 WHERE id >= (SELECT id FROM 成績單 LIMIT 100000, 1) LIMIT 1
0 意見:
張貼留言