2015-12-09 122 views
0

关于性能 - 是否建议更新totalCount字段而不是使用聚合运行查询?例如,假设有一个ChatRoom集合,每个集合都有一个Emedded在线用户集合。我们希望得到每个房间的总用户数的查询结果。rethinkdb聚合计数,应该有计数字段还是只运行聚合计数函数

我知道在mongo他们建议你在房间本身增加一个totalUsers属性,而不是在ChatRoom.users上运行count()查询。

回答

0

这取决于用户数组的大小。如果它很大,那么运行计数字段会更快,如果它很小,那么它无关紧要。

+0

它应该在任何房间最多不超过一百个,最多可以有几百个房间。我在这个问题中详细阐述了一些用例:http://stackoverflow.com/questions/34190913/how-to-get-length-of-embedded-array-in-a-rethink-query-projection – MonkeyBonkey

+0

计算100个元素应该占总时间的相当小的百分比。除非你遇到性能问题并尝试优化,否则我不会加入'totalCount'字段。 – mlucy