私はこれをどのように尋ねるかを理解しようとしているので、必要に応じて問題を解決するために質問を更新します。
私は楽しみのために構築している仮想証券取引所ゲームサイトを持っています。人々はたくさんの取引をします、そして、それぞれの取引はテーブルのそれ自身の記録です。
ポートフォリオページを表示するときは、データのテーブルですべてをその場で計算する必要があります。つまり、ユーザーが持っているシェアの数、合計の利益、損失などです。
私が日ごとに会社ごとの取引でそれをセグメント化しようとすると、物事は本当に減速し始めました。
これを示すために表示するコードは実際にはありませんが、これに正しくアプローチしていないように感じます。
更新:このコードは特に非常に遅いです
#Returning an array of values for a total portfolio over time
def portfolio_value_over_time
portfolio_value_array = []
days = self.from_the_first_funding_date
companies = self.list_of_companies
days.each_with_index do |day, index|
#Starting value
days_value = 0
companies.each do |company|
holdings = self.holdings_by_day_and_company(day, company)
price = Company.find_by_id(company).day_price(day)
days_value = days_value + (holdings * price).to_i
end
#Adding all companies together for that day
portfolio_value_array[index] = days_value
end
ページの読み込み時間は最大20秒以上になる可能性があります-まったく正気ではありません。そして、私は多くのリクエストをMemcacheにキャッシュしました。
このようなライブデータに関するレポート/チャートを生成するべきではありませんか?cronタスクを実行してどこかに保存する必要がありますか?Railsでこの量のデータを処理するためのベストプラクティスは何ですか?