RailsとMySQLを使用していますが、行のカウントに基づく効率の質問があります。
私はそのProject
モデルを持っていhas_many :donations
ます。
プロジェクトのユニークなドナーの数を数えたいです。
projects
テーブルにと呼ばれるフィールドがありnum_donors
、新しいドナーが作成されたときにそれをインクリメントするのは良い考えですか?
それとも@num_donors = Donor.count(:select => 'DISTINCT user_id')
、データベースの最適化のおかげで、効率の点で類似または同じになるようなものですか?user_id
これには、カウントしたい他のフィールドのインデックスを作成する必要がありますか?
寄付総額の合計についても同じ答えが当てはまりますか?