0

ユーザーの購入のトランザクションを記録する hasMany テーブルがあります。

また、いくつかのコード ロジックを記述して、同じ user_id の最新の作成日を含む行に基づいて最新の口座残高を取得するようにします。

各トランザクションの後に、users テーブルにも最新の口座残高を記録する必要があるかどうか疑問に思っていましたか?

これはmysqlのパフォーマンスの点で役立ちますか、それともそれほど重要ではないので気にしないでください。

4

1 に答える 1

0

考えているような計算フィールドを作成するたびに、システムに冗長データが導入されます。ソフトウェア開発者は、パフォーマンスを向上させるためにそうすることを選択する場合があるため、ここで測定する必要があるのは、冗長データを維持するコストと、計算フィールド アプローチで達成される平均時間の節約です。

私は次のことを検討します:

  • トランザクション関係はどのくらい大きくなりますか?
  • 新しいトランザクションはどのくらいの頻度で作成されますか?
  • 新しいトランザクションのソースはいくつありますか?
  • クエリを高速化できますか? (たとえば、日付検索は整数検索よりも遅いです。大きいほど新しいと仮定して、ID を使用できますか?)

計算フィールドの使用に本質的に悪いことはありませんが、それに伴うリスクに注意してください。

乾杯

于 2012-09-09T16:09:59.473 に答える