サイトにニュースの多くのページを表示する必要があります。LIMIT
すべての結果を取得した後、PHP スクリプトを使用して、または PHP スクリプトを使用して、データベース クエリでページ付けを行う必要がありますか?
6 に答える
制限を使用します。回避できる場合は、大量のデータをデータベースからスクリプト エンジンに転送したくありません。
SQLで制限を使用してください!毎回!
そうしないと、必要以上に大量のデータを処理することになり、スクリプトが不必要に遅くなり、テーブル内のデータ量が増えるにつれてスケーラビリティの問題が発生します。
限界はあなたの友達です!
これをサポートする DBMS でのみ作業したい場合は、DBMS で作業してください。将来的に他の DBMS をサポートしたい場合は、現在の DBMS に応じて処理できるレイヤーをその間に追加します。
を使用することに加えて、明示的な句を使用してオフセットを設定し、その列で結果を並べ替えるLIMIT
ことをお勧めします。WHERE
例えば:
--- First page (showing first 50 records)
SELECT * FROM people ORDER BY id LIMIT 50
--- Second page
SELECT * FROM people WHERE id > 50 ORDER BY id LIMIT 50
これにより、返される行数が目的の範囲内にさらに制限されます。このアプローチを使用すると(たとえば、別のオフセットをWHERE
持つ句とは対照的に)、名前のアルファベット順や日付順など、他の自然キーを持つレコードのページングを効果的に処理できます。LIMIT
LIMIT 50,50
個人的には、クエリを使用してそれを行います。明らかに、AJAX などを扱う場合は変わる可能性がありますが、クエリで基本的な制限を実行して結果を出力するだけで、シンプルで効率的です。