首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用45+查询加速页面

如何使用45+查询加速页面
EN

Stack Overflow用户
提问于 2010-09-21 04:58:38
回答 3查看 155关注 0票数 3

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

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

设置ACL和一些日志记录,您将得到45+查询,有时是65+

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

目前,我已经在Rails中的全局变量中为用户预加载了所有关系表,它工作得很好,只是维护包含所有同步和转换数据的缓存比较复杂。

我尝试过memcached,但速度很慢,因为每个对象都必须在每次请求时序列化/反序列化。

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

EN

回答 3

Stack Overflow用户

发布于 2010-09-21 05:20:23

如果您有一个具有一堆关系的单一模型,那么使用"include“加载应该会对您有很大帮助。在Rails 2.3中,它的工作原理类似于:

代码语言:javascript
复制
User.find(1, :include => [:relationship1, :relationship2, :relationship2])
票数 3
EN

Stack Overflow用户

发布于 2010-09-21 05:28:52

同意,ActiveRecord的“包含”选项应该会有很大帮助。但是,不要忘记您还可以嵌套关联。例如,假设您有以下设置。

代码语言:javascript
复制
User
 - Blog
   - Posts
     - Comments
 - Images
   - Comments
 - Videos
   - EncodedVideos

可以在ActiveRecord中将设置为:

代码语言:javascript
复制
User.find(:all, :include => {:user => [{:blog => {:posts => :comments}}, {:images => :comments}, {:videos => :encoded_videos}]})

希望这能有所帮助。

票数 0
EN

Stack Overflow用户

发布于 2010-10-28 23:47:13

另一种方法可能是将集合存储在客户端浏览器下

http://www.gudasoft.com/english/development/rails-development/10/28/1342/store-data-in-the-browser-with-rails-and-jquery/2010

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3755452

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档