DBから複数のレコードを取得することに疑問があります。
ケース1:
- 結合を適用し、DBからすべてのレコード(選択した列)を選択し、Webサーバーでフィルター条件を実行します。
ケース2:
- 結合を適用し、フィルター条件を適用し、DBで計算を行い、Webではデータを表示するだけで何もしません。
上記の2つの場合、どちらが推奨されますか?
私が考えているのは、
- ケース1では、DBの作業はそれほど多くありませんが、ネットワークは多くのデータを伝送し、Webサーバーはより多くの作業を行う必要があります。
- ケース2では、DBの作業が多くなりますが、ネットワークが運ぶレコードはケース1より少なく、Webサーバーの作業は少なくなります。
Webサーバーもスケーラブルであり、DBサーバーもスケーラブルです(私のDBサイズは50GBを超えないかもしれません)。
では、パフォーマンスを向上させるために、フィルタリングと計算をどこで行う必要がありますか。また、その理由は何ですか。