首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >保存站点统计信息的猫鼬模式

保存站点统计信息的猫鼬模式
EN

Stack Overflow用户
提问于 2014-01-21 04:52:02
回答 1查看 223关注 0票数 0

说我想我的头版显示统计数字,如“在整个网站的评论总数”。对注释集合中的所有文档进行查询并获取长度是更好的做法,还是使用一个统计数据集合更容易呢?

我最初的本能反应是只查询注释集合和获取长度,但是随着注释的增加,查询将变得非常昂贵。为几个文档使用集合似乎是不有效的,并且需要更多的逻辑来在进行注释时对其进行更新。

哪条路是正确的?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-23 15:38:08

“正确”是主观的,但实际上,第二个策略只是将count()缓存在另一个集合中。使用内存中的缓存(例如memcached)来进行实时统计将更为典型,因为计数是短暂的,而且您可能不需要存储它们的I/O开销(除非您也在绘制某种历史记录?)。当应用程序启动时,您可以使用当前计数作为缓存的主要内容。

值得注意的是,缓存的计数器不必与数据库查询返回的count()完全匹配。一旦您有了一个开始计数,您可能知道唯一的方法来改变这是通过添加或删除一个注释。使用像猫鼬这样的方法,您可以根据注释模型中的事件来调整缓存的计数,即:afterInsert (+1)和可能的afterRemove (-1)。大多数网站只喜欢刊登越来越多的统计数据,所以对“总评论”的解释通常是“总评论(任何时候)”,而不是“当前发布的评论总数”。

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

https://stackoverflow.com/questions/21249439

复制
相关文章

相似问题

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