最も基本的なページング方法:
SELECT ... FROM ... WHERE ... ORDER BY ... LIMIT ...
小規模および中程度のデータ量の場合は、この SQL で十分です注意が必要な唯一の問題は、インデックスが使用されていることを確認することです:
たとえば、実際の SQL が次のステートメントに似ている場合は、category_id、id 列に複合インデックスを確立することをお勧めします。
SELECT * FROM Articles WHERE category_id = 123 ORDER BY id LIMIT 50, 10
サブクエリのページング方法:
データ量が増えるとページ数もどんどん増えていきます、次の数ページの SQL は次のようになります。
SELECT * FROM Articles WHERE category_id = 123 ORDER BY id LIMIT 10000, 10
一言で言えば、ページが遠くになるほど、ページングされると、LIMIT ステートメントのオフセットが大きくなり、速度も大幅に遅くなります。
現時点では、おおよそ次のようにサブクエリを通じてページングの効率を向上させることができます:
SELECT * FROM Articles WHERE category_id = 123 AND id >= (
SELECT id FROM Articles ORDER ID による LIMIT 10000, 1
) LIMIT 10
-------------------------------- - ----------
実際には、戦略モードと同様の方法でページングを処理できます。たとえば、ページングが 100 ページ以内であると判断された場合は、最も基本的なページング方法であり、100 ページを超える場合は、サブクエリ ページング方法を使用します。