【问题标题】:Caching large numbers of ActiveRecord objects缓存大量 ActiveRecord 对象
【发布时间】:2012-11-17 01:35:21
【问题描述】:

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

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

【问题讨论】:

  • 这些是拥有大量数据的超级对象吗?从缓存中读取 400 个对象不应该通常花费那么长时间。
  • 不,它们真的没那么大。这就是为什么我很困惑为什么要花这么长时间。我会做更多调查。

标签: ruby-on-rails caching activerecord


【解决方案1】:

关于 Rails 缓存的仅供参考,来自 Rails 指南,“......请务必注意,查询缓存是在操作开始时创建并在操作结束时销毁,因此仅在操作期间持续存在。”

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

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

【讨论】:

    猜你喜欢
    • 2014-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-29
    相关资源
    最近更新 更多