ruby-on-rails - 如何加速包含 45 个以上查询的页面

标签 ruby-on-rails

你将如何处理复杂的网页,你必须显示一个有很多关系的用户帐户(15+)

翻译数据保存在单独的表 (globalize2/3) 中,因此查询上升到 30+。

放置 ACL 和一些日志记录,你会得到 45+ 查询,有时 65+

我不想在多个屏幕上拆分页面,所有数据都需要在一个屏幕上显示。

目前,我已经在 Rails 的一个全局变量中为用户预加载了所有关系表,它工作正常,除了用所有同步和翻译数据维护缓存很复杂。

我已经尝试过 memcached,但速度很慢,因为每个对象都必须根据每个请求进行序列化/反序列化。

处理此类页面的最佳方式是什么?

最佳答案

如果您有一个包含大量关系的单一模型,使用“include”进行预加载应该会对您有很大帮助。在 Rails 2.3 中,它的工作方式类似于:

User.find(1, :include => [:relationship1, :relationship2, :relationship2])

关于ruby-on-rails - 如何加速包含 45 个以上查询的页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3755452/

相关文章:

html - Rails Nested collection_select 出现在 HTML 中但不出现在屏幕上

ruby-on-rails - 注册失败后设计重定向

ruby-on-rails - Controller 中的 Rails 5 实例级助手方法无法识别助手。方法

ruby-on-rails - 如何调整在使用生产级 Heroku Postgres 的 Heroku 上运行的 Ruby on Rails 应用程序?

ruby-on-rails - Ruby on Rails - 回形针不保存到数据库

ruby-on-rails - 由于 Bootsnap 和 Rake 问题,Heroku Rails 构建失败

ruby-on-rails - 在 cookies.signed 与 session 中存储值的安全差异

ruby-on-rails - Rails 错误:执行时(Gem::RemoteFetcher::UnknownHostError)

ruby-on-rails - 运行 webbrick 的 Ubuntu 上的 ImageMagick 冲突

ruby-on-rails - 获取 Stripe 的美分价格