SELECT * FROM t LIMIT 0, 10; -- 极快
SELECT * FROM t LIMIT 1000000, 10; -- 极慢
WHERE = 找到西湖區架子(快)ORDER BY = 架上按時間排序(快)LIMIT 1000000, 10 = 從頭數到第 100 萬封,再取 10 封 → 必須掃描並丟棄前 100 萬行MySQL 無法「跳躍」到偏移量,只能順序讀取並計數。
-- 記住上一頁最大 ID
SELECT * FROM t WHERE id > 1000000 ORDER BY id LIMIT 10;
適用:單向翻頁、ID 連續/單調遞增、無需跳頁。
SELECT t.* FROM t
JOIN (SELECT id FROM t ORDER BY id LIMIT 1000000, 10) AS tmp USING (id);
子查詢只掃描主鍵索引(覆蓋索引),極快;外層回表僅 10 行。
LIMIT 偏移量大 = 全表掃描到該位置。優化本質是「減少無效掃描行數」,而非調參數。