我试图弄清楚如何问这个问题 - 所以我会更新这个问题,以便在需要时解决问题。
我有一个虚拟的证券交易所游戏网站,我一直在建立一个好玩的网站。人们进行大量交易,每笔交易在表格中都有自己的记录。
当显示投资组合页面时,我必须在数据表上即时计算所有内容 - 即用户拥有多少股份,总收益,损失等。
当我尝试按公司每天的交易对其进行细分时,事情确实开始放缓。
我真的没有任何代码可以展示这一点 - 但感觉就像我没有正确处理这个问题。
更新:这段代码特别慢
#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 中处理这么多数据的最佳实践是什么?