最も基本的なページング方法:
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 Article WHERE category_id = 123 AND id >= (
SELECT id FROM Articles ORDER BY id LIMIT 10000, 1
) LIMIT 10
- --------------------------------------
実際に戦略と同様の方法が使えますモード ページングを処理するには、たとえば、ページングが 100 ページ以内であると判断された場合は、最も基本的なページング方法を使用します。100 ページを超える場合は、サブクエリ ページング方法を使用します。
上記では、php mysql の内容を含め、php mysql とページングの効率について紹介しています。PHP チュートリアルに興味のある友人に役立つことを願っています。