是否更好地存儲計數器,並在每次更改或實時從每個可能的數據源進行計算時實時更新它?Firebase/NoSQL數據庫:實時更新統計信息還是計算它們?
例如: 我正在構建跟蹤「checkins」的應用程序,類似於FourSquare。 當用戶「登記」到某個位置時,我需要跟蹤個人的統計信息以及所有用戶的位置總數。 (爲簡潔起見,這是應用程序的簡化版本,真實應用程序會跟蹤更多信息)。
例如喬檢查入咖啡地點:
- 喬/ CoffeePlace/+ 1
現在佛瑞德,湯姆和Lisa也檢查到了咖啡地點:
- 佛瑞德/ CoffeePlace/+ 1
- 湯姆/ CoffeePlace/+ 1
- 莉莎/ CoffeePlace/+ 1
以上是跟蹤個人的必要條件,但跟蹤Coffee Place的入住總數的最佳做法對我來說還不清楚。
這是正確的做法?
- 來自每個用戶節點收集數據,然後計算所有簽入 - >顯示總簽到
- 創建咖啡放置一個文件,該文件在像每個檢查更新: CoffeePlace/+ 1 + 1 + 1 + 1
我可以想象對於非常大的數據集即計算上會是耗時的(因爲計算,因爲從每個節點收集數據的不但)。這裏最好的做法是什麼?