2011-07-19 22 views
0

多くの異なるテーブルで複数の行から計算された結果があります。これらの結果は、プロファイルに表示されます。リクエストに応じて最新の結果を表示するには、これらの結果を別のテーブルに保存し、変更時にそれらを更新する必要がありますか?またはこれらの結果をオンザフライで計算する必要がありますか?計算結果をオンザフライで表示対テーブルで事前計算結果を保存

+2

これらは唯一の選択肢ではありません。あなたはクエリ結果をキャッシュすることができます、結果を含むオブジェクトをキャッシュすることができます、あなたは、ページ全体をキャッシュすることができます、あなたは、ページ全体をキャッシュするブラウザに伝えることができます、 AJAXのリクエストを受け取り、ブラウザにキャッシュするように指示すると、サーバー全体の前にキャッシュプロキシを置くことができます...データベースのキャッシュとしてデータベースを使用することは、私が検討する最後のことです。非常に多くのオプションと比較して、通信プロトコルにはキャッシュに対する大きなオーバーヘッドがあります。 –

答えて

2

パフォーマンスの質問ではいつものように、「それは依存する」と答えています。

私はおそらく、その場で結果を計算することから始め、問題が始まるとそれらを事前計算することになります。

メインデータの事前計算済み/集計済みのコピーがある場合は、更新プロセスを設定して、要約が正しいことを確認する必要があります。これは非常に扱いにくく、アプリケーションに多くの複雑さを加えることができます。そうしなければ、私はそれをしません。また、サマリーが実際に正しいことを確認するための健全性チェックツールを用意することもできます。そして、「すべてを殺し、生成されたサマリーを再構築する」ツールのセットも便利です。

これらの計算が問題であれば(そしてパフォーマンスを測定し、問題のクエリがボトルネックであり、それを証明する数値があることを知っていることを意味します)、追加のコーディングおよび維持努力。