【发布时间】:2012-12-18 05:17:25
【问题描述】:
我有一个名为 Person 的模型,而 Person 有多个帖子。当我想查询每个人的帖子计数时,它需要很长时间来处理,因为它需要遍历每个人并查询每个帖子以获取聚合。
class Person < ActiveRecord::Base
has_many :posts
end
输出 (JSON):
Person1
PostsType1Count: 15
PostsType2Count: 45
Person2
PostsType3Count: 33
.
.
.
我想以最佳方式计算每个人的所有帖子数。最好的解决方案是什么?
【问题讨论】:
-
为什么一个人有多个帖子数?
-
有不同类型的帖子。我需要单独计算它们
-
如果您的帖子类型是预定义的,请在 Person 上为每种类型的帖子添加一列,并预先加载该工作。发布帖子后,增加适当的计数,然后更新计数是微不足道的。
标签: mysql ruby-on-rails performance