私はアイテムのユーザーの投票を記録する投票表(user_id、item_id、date)を持っています。ユーザーが投票するアイテムの数は、数万人に上り、ユーザー数万人になる可能性があります。私は、これらの項目の投票合計を定期的に返すクエリ(トップ票を持つ項目)を行う必要があります。すべての合計を継続的に合計するのを避けるために、項目テーブル(item_name、item_id、vote_total)の投票合計を追跡するのが理にかなっています。は、投票合計を記録するときに二次的なカウント情報を格納するために最適化されていますか?
一方、これを行うと、ユーザーが投票するたびに投票テーブルを現在の合計で更新することになります(ほぼ同じ時間に多くのユーザーが同じ行を更新します)。最適化コードは問題を引き起こす可能性があります。これは私が心配すべきことですか?
この問題が何度も繰り返されていることに気がつきました。たとえば、アイテムごとの総コメント数、アイテムあたりの総ビュー数などで同じことを行う必要があります。練習?
必須*と表示されている*というパフォーマンステストケースがないかぎり、それは*過剰最適化*です。モデルがきれいに保たれている限り、それはかなり適応性があります。セカンダリ/キャッシュテーブルは、プライマリ正規化データにこの情報を処理しようとするよりもはるかに優れています。 –