5

サイトにニュースの多くのページを表示する必要があります。LIMITすべての結果を取得した後、PHP スクリプトを使用して、または PHP スクリプトを使用して、データベース クエリでページ付けを行う必要がありますか?

4

6 に答える 6

10

制限を使用します。回避できる場合は、大量のデータをデータベースからスクリプト エンジンに転送したくありません。

于 2008-09-20T19:06:44.760 に答える
10

SQLで制限を使用してください!毎回!

そうしないと、必要以上に大量のデータを処理することになり、スクリプトが不必要に遅くなり、テーブル内のデータ量が増えるにつれてスケーラビリティの問題が発生します。

限界はあなたの友達です!

于 2008-09-20T19:09:45.767 に答える
2

いくつかの既存のライブラリを使用して、次のことができます。

Pear :: Pager は出力を支援し、データベーストラフィックを必要なものだけに制限するために、付属の例で提供されているラッパーを使用できます。

これが私がグーグルで検索したチュートリアルで、すべてが揃っています...

于 2008-09-20T20:25:08.940 に答える
2

これをサポートする DBMS でのみ作業したい場合は、DBMS で作業してください。将来的に他の DBMS をサポートしたい場合は、現在の DBMS に応じて処理できるレイヤーをその間に追加します。

于 2008-09-20T19:11:33.220 に答える
1

を使用することに加えて、明示的な句を使用してオフセットを設定し、その列で結果を並べ替える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持つ句とは対照的に)、名前のアルファベット順や日付順など、他の自然キーを持つレコードのページングを効果的に処理できます。LIMITLIMIT 50,50

于 2009-01-07T18:58:37.927 に答える
0

個人的には、クエリを使用してそれを行います。明らかに、AJAX などを扱う場合は変わる可能性がありますが、クエリで基本的な制限を実行して結果を出力するだけで、シンプルで効率的です。

于 2008-09-20T19:08:48.033 に答える