MySQL最適化LIMITページング

721 ワード

limitを使うときは簡単です
select * from table limit 1, 10;

select column1, column2, column3 from table limit 1, 10;

問題ない
しかし、时には私の時計の中にたくさんのデータがあります.どうすればいいですか?
select column1 from table limit 500000, 100;

どうしよう?
この時、columnが私たちがよく使うインデックスならまだしも、もし私たちがそうなら?
select column1, column2 from table limit 500000, 100;

column 2はインデックスではなく、クエリが非常に遅くなるに違いありません.では、どうやって解決しますか.
この場合、すべてのカラムをクエリーするのではなく、インデックスを使用してスキャンを上書きし、必要に応じてすべてのカラムを返す関連付け操作を行う必要があります.
SELECT 
  column1, column2, column3
FROM
  table 
INNER JOIN 
    (SELECT 
      column1 
    FROM
      table 
    LIMIT 500000, 50) AS ood USING (column1);