缓存大量ActiveRecord对象

时间:2012-11-29 02:41:27

标签: ruby-on-rails caching activerecord

我的Rails应用程序中有一个经常被调用的方法,它从数据库中检索约200个项目。我不是一次又一次地这样做,而是使用Rails.cache.write存储结果。但是,当我使用Rails.cache.read检索结果时,它仍然非常慢:大约400毫秒。有什么方法可以加快速度吗?

这是在控制器操作中发生的,我希望用户不必等待这么长时间来加载页面。

1 个答案:

答案 0 :(得分:0)

关于Rails指南的Rails缓存的费用,“......重要的是要注意查询缓存是在操作开始时创建的,并在该操作结束时销毁,因此仅在操作期间持续存在。“

如果您可以分享方法,我可以更快地提供帮助。否则,有几个性能最佳实践:

  • 使用.includes来避免N + 1次查询。在模型中定义它 在控制器中调用它。
  • 您的索引是如何设置的(如果有的话)?