我有一个想要显示总计的集合,其想法是为我需要的每个总计使用缓存。然而,我还需要深入研究数据集。所以很可能无论如何我都必须加载该集合。那么我应该仍然使用缓存还是只使用计算?
正如斯蒂芬·奥唐纳(Stephen ODonnell)所说,“……取决于藏品的规模。”但是,您还需要考虑每页进行此计算的次数。例如,如果您正在开发一个博客应用程序,并且帖子/索引页面显示 10 篇博客文章,每篇文章底部都有“155 条评论”,则可以通过使用计数器缓存来避免大量数据库调用。
我建议尝试仅使用活动记录搜索,但添加“包含”选项。假设第 123 号帖子有 50 条评论。
p = Post.find_by_id(123)
p.comments.each do {|c| puts c } #Do something meaningful instead...
将生成 51 个数据库调用,其中 1 个用于帖子,1 个用于每个评论。相反,你可以这样做:
Post.find_by_id(123, :include => [:comments])
现在,当您搜索帖子时,它会自动查询评论,将 51 个查询压缩为 1 个。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)