私は自分のフレームワークのページング コンポーネントで忙しいので、次の 2 つのうちどちらが高速か (または、さらに優れたソリューションがあるかどうか) を考えています。
ここでの私の考えは、オブジェクトに次の順序で実行させることです。
- GET 変数から現在のページとページごとの結果を取得する
- 表示目的で結果の合計金額を取得する (534 件中 10 件の結果を表示)
- 現在のページとページごとの結果に基づいて、取得する結果を決定します。
- ページングクラスを表示および構築するために、結果をビューに返します
私が見ることができるものから、2つのオプションのいずれかがあります:
結果の少ない複数のクエリ
- クエリを実行して、すべての結果の行数を決定します。
- 別のクエリを実行して、オフセットを使用してアクティブなページに必要な結果を返します
1 つのクエリで PHP に処理させる
- すべての行を配列に戻す
- PHP を取得して配列から行を返し、count() を実行します。
やったほうが早いのはどっち?オプション1の結果が多いほど良いことは理解していますが、行をカウントして特定の結果を返す2つのクエリは、すべての結果を返し、PHPに残りの処理を実行させる1つのクエリよりも高速に感じます。
おそらく私が見逃している別のより十分な方法はありますか?