ユーザーからのエントリを受け入れるサイトがあります。時間の経過とともにエントリを表示するグラフを作成したいと考えています。データベースへの 24 回の呼び出しで sql が 1 時間あたりのエントリ数を返すようにする方が効率的ですか、それとも 1 回の呼び出しですべてのエントリを返し、それらを php で整理する必要がありますか?
3 に答える
データ、データベース スキーマ、およびクエリに依存します。
通常、実行できるクエリは少ないほど良いです。
クエリを最適化してもまだ遅い場合は、結果を PHP にキャッシュしますか?
データベース、Webサーバーと同じマシン上のデータベース、トラフィックなどの設定に依存すると思います...各呼び出しはデータベースサーバーでいくつかのオーバーヘッダーを使用しますが、Webサーバーでソートする必要はありません。ループでテストすることをお勧めします。
わかりました、比較しましょう:
1) データベースにすべての値を照会します。ネットワーク全体の大量のデータをアプリケーション サーバーに返します。クライアントの DBD インターフェースを介して、そのすべてのデータを解析します。独自のデータ構造を構築して、必要な方法でデータを保存します。クライアント コードを作成、文書化、および維持して、詳細なデータ全体をループし、各行でデータ構造を追加/更新します。
2) 必要なデータを必要な形式でデータベースに照会します。高度に調整されたデータベースで集計バケットを作成します。ネットワーク経由で返されるデータが少なくなります。アプリ サーバーで解析するデータを減らします。返されたデータをそのまま使用してください。
「場合による」はありません。データベースを使用します。