1

配列に50個のオブジェクトがあり、各オブジェクトにプロパティがあるとしますcost。また、すべてのオブジェクトはMySQLデータベースにあります。

すべてのオブジェクトをループしてそれらのメンバーを合計する方が効率的でしょうかcost、それとも次のようなクエリを作成する方が効率的でしょうSELECT sum(cost) FROM ...か?

編集:PDOデータベースオブジェクトはすでに確立されています。

4

5 に答える 5

3

配列のサイズ、データベース接続がすでに確立されているかどうかなどによって異なります。ループ部分は50項目しかないため、一般的にループ部分を使用します。ただし、最終的な答えは、自分で実行できるベンチマークです。

于 2012-07-07T15:56:03.310 に答える
1

SUMクエリ。手を下げて。アプリコード内の配列をループするよりも効率的でない場合は、データベースを調整する必要があります。:)

于 2012-07-07T15:53:48.547 に答える
1

一般に、MySQLにそれを行わせる方がはるかに効率的です。ただし、実際に50個のオブジェクトである場合は、データベースへのネットワーク接続などの他の要因が関係する可能性がありますただし、アプリケーションがスケーリングしないことを前提としたコードを作成することは決して良い考えではありません。したがって、MySQLを使用してください:-)

于 2012-07-07T15:54:25.370 に答える
1

合計クエリ。自分でやろうとするよりもずっと効率的です。

いずれにせよ、それらは問題にならないほど十分に類似しているでしょう。つまり、合計が高速である場合とほぼ同じである場合があるため、合計を使用することを意味します。コードを自分で実行してリスクを冒す理由はありません。

于 2012-07-07T15:55:12.533 に答える
0

phpで74601レコードのテーブルを試してみたところ、sqlSUMクエリはphpでループするよりも約10倍高速であることがわかりました。

ここで結果を確認してください

于 2017-12-30T06:18:04.963 に答える