質問
サイト内に多くのページのニュースを表示する必要があります。
リミットを使用してデータベースクエリでページネーションを実行する必要がありますか、それともすべての結果を取得した後にPHPスクリプトで実行する必要がありますか?
解決
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 などを扱う場合は状況が変わる可能性がありますが、クエリで基本的な制限を実行して結果を出力するだけで簡単で効率的です。
所属していません StackOverflow