首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 分頁技術完整總結:6 種分頁方法優缺點對比、適用場景與效能優化建議 (LIMIT/索引/排序/Prepared Statement/存儲過程)

     編輯:MySQL 資料庫相關知識

MySQL 分頁技術完整總結:6 種方法優缺點對比


方法 1:直接 LIMIT M,N (基本分頁)

SELECT * FROM table_name LIMIT M, N
  • 適用:資料量少 (百/千級)
  • 缺點:全表掃描,速度慢;結果集順序可能不穩定
  • 原理:從結果集第 M 位取 N 筆,其餘捨棄

方法 2:主鍵/唯一索引 + WHERE id > offset

SELECT * FROM table_name WHERE id_pk > (pageNum * 10) LIMIT 10
  • 適用:資料量大 (萬級以上)
  • 優點:索引掃描,極快
  • 風險:若查詢結果非按 pk 排序,可能漏資料

方法 3:索引 + ORDER BY 確保穩定

SELECT * FROM table_name
WHERE id_pk > (pageNum * 10)
ORDER BY id_pk ASC
LIMIT 10
  • 適用:大資料量,需穩定結果
  • 關鍵:ORDER BY 欄位為主鍵/唯一索引 → 排序操作被消除,結果集穩定
  • 限制:MySQL 僅支援 ASC 真正優化,DESC 為假 (未來可能改善)

方法 4:Prepared Statement + 索引

PREPARE stmt_name FROM
SELECT * FROM table_name
WHERE id_pk > (? * ?) ORDER BY id_pk ASC LIMIT 10
  • 適用:大資料量
  • 優點:Prepared Statement 比一般查詢更快 (預編譯)

方法 5:存儲過程封裝 (推薦融合方法 4)

  • 適用:大資料量
  • 優點:邏輯封裝在伺服器端,網路交互少,相對更快
  • 作者推薦方案

方法 6:(文中未詳細展開,通常為游標/臨時表等進階技巧)


選型建議

資料量推薦方法
百/千級方法 1 (簡單直接)
萬級以上方法 3 + 方法 4/5 (索引+排序+預編譯/存儲過程)

分頁優化核心:避免全表掃描,善用索引覆蓋,固定排序確保穩定。


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved