2012-04-02 50 views
0

好吧,我正在处理一个新的rails应用程序,它需要在任何时候处理100万条左右的记录。新的导轨缓存

在任何时候那里将最大的是:

  • 1500奥特莱斯
  • 400用户
  • 百万监测记录

对我有这样的运行Linode 512 VPS:

  • 512MB RAM
  • 20GB存储

我是新来的on Rails的缓存,而我不知道从哪里开始。

仪表板,运行以下查询:

# Controller 
@outlets = Outlet.includes(:current_monitorings).where(:is_active => 'true') 

# Model 
has_many :current_monitorings, :class_name => "Monitoring", :conditions => proc { [ 'monitorings.created_at > ?', Time.now.midnight ] } 

我将如何有效的缓存呢?

此外,我在我的Monitorings_controller中的标准CRUD设置。我该如何处理缓存?

任何帮助是极大的赞赏。

+0

我对你刚才提到的问题,检查此链接,了解更多详细信息,高速缓存,它很可能你不需要对此的任何缓存。按照现代标准,你的数字都不大。通过监视索引(outlet_id,created_at),出口和监视之间的这个外部jojn查询应该由postgres快速提供。你尝试过了吗?我希望你应该能够每秒执行这个查询数百次。由于缓存引入了新问题(一致性,陈旧数据和过期策略,内存管理,附加服务),因此只缓存无法根据服务需求计算的内容。 – dbenhur 2012-04-02 16:16:04

+0

这不仅仅是查询,由于某种原因,它会放慢一切...很多。我用虚拟数据为应用程序填充了大约60万个监视器,并且现在查询需要17秒来完成 – Ammar 2012-04-02 20:12:35

+0

它从原始帖子改变了,我将有大约2000个网点,并且有1,000,000个监视器与它们相关联。 我想要显示一个仪表板,当今天监视与它们相关联时,每个仪表板都变为绿色。当前查询花费5分钟,并使用100%的CPU。 – Ammar 2012-04-02 21:22:10

回答