カウント/合計などの保存に関するベストプラクティスは何ですか? 各ページの読み込み時にその場で計算するのは大したことではありませんか?
複数のソースからの製品と販売レポートを含む Rails アプリがあります。これらの販売レポートの中には、1 日あたり 10 万行以上に及ぶものもあります。現時点では、ページの読み込みごとにオンザフライで計算しています。これは明らかに非常に遅いです。
売上レポートはほぼ確実に 1 回書き込まれ、何度も読み取られるため、製品テーブルに合計列を追加し、新しい売上が書き込まれるたびにインクリメントする方がよいでしょうか? これにより明らかにはるかに高速になることがわかりますが、日付フィルタリングを提供する能力が大幅に制限されます。「過去 7 日間のトップ 10」など
フィルタリングを可能にする別の解決策は、各製品の毎日の合計を含む 3 番目のテーブルを作成することでしょうか? メインの販売テーブルには、毎日の製品ごとに複数の、場合によっては数千の行が含まれている可能性があるため、メインの販売テーブルの要約バージョンがどのように高速化できるかをもう一度確認できます。
before/after_save コールバックを使用してこれらの計算を実行する必要がありますか、またはインポート中に実行する必要がありますか?それとも、スケジュールされたタスクをバックグラウンドで実行する必要がありますか?
私を正しい道に導き、恥ずかしいほど遅いページ読み込み時間を改善するのに役立つ提案や推奨読書を誰かが提供できますか?
前もって感謝します!