ホームページ >バックエンド開発 >PHPチュートリアル >php MySQL とページングの効率_PHP チュートリアル
最も基本的なページング方法:
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記事 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 BY id LIMIT 10000, 1
) LIMIT 10
----------------------------------------
実際には次のようなものを使用できますストラテジ モードは、ページングを処理するために使用されます。たとえば、ページングが 100 ページ以内であると判断された場合は、最も基本的なページング方法が使用されます。100 ページを超える場合は、サブクエリ ページング方法が使用されます。