是否更好地存储计数器,并在每次更改或实时从每个可能的数据源进行计算时实时更新它?Firebase/NoSQL数据库:实时更新统计信息还是计算它们?
例如: 我正在构建跟踪“checkins”的应用程序,类似于FourSquare。 当用户“登记”到某个位置时,我需要跟踪个人的统计信息以及所有用户的位置总数。 (为简洁起见,这是应用程序的简化版本,真实应用程序会跟踪更多信息)。
例如乔检查入咖啡地点:
- 乔/ CoffeePlace/+ 1
现在佛瑞德,汤姆和Lisa也检查到了咖啡地点:
- 佛瑞德/ CoffeePlace/+ 1
- 汤姆/ CoffeePlace/+ 1
- 莉莎/ CoffeePlace/+ 1
以上是跟踪个人的必要条件,但跟踪Coffee Place的入住总数的最佳做法对我来说还不清楚。
这是正确的做法?
- 来自每个用户节点收集数据,然后计算所有签入 - >显示总签到
- 创建咖啡放置一个文件,该文件在像每个检查更新: CoffeePlace/+ 1 + 1 + 1 + 1
我可以想象对于非常大的数据集即计算上会是耗时的(因为计算,因为从每个节点收集数据的不但)。这里最好的做法是什么?