网站统计数据该如何设计?

2015-11-09 10:42:01 +08:00
 squallcx

例如 V2EX 增加财富时

是直接把增加的值 update 到 user model 上财富值的 IntegerField ?
还是
有个所有用户的 财富增加值 model , 每增加一笔财富就加一条 row ,每次都计算一次?

怎么设计比较靠谱

3362 次点击
所在节点    Django
4 条回复
nisnaker
2015-11-09 14:31:49 +08:00
两个一起来。
qiayue
2015-11-09 14:37:53 +08:00
显示的时候从 user 里取,就不需要每一次都计算。
财富变化表用于记录每一次变化,方便做账核对。
hellov22ex
2015-11-09 14:40:45 +08:00
可以两个一起来,尤其是下面那个,完全可以增加一个新的字段,标明当前这一笔增加后产生的新的总量是多少,和前面的核对下。
raysmond
2015-11-09 14:42:50 +08:00
DB model 里面记录统计值,方便显示的时候查看
需要记录明细就开一个 table 记录每次统计变化

需要的统计的时候,首先在 redis/memcached 中更新统计值,然后异步(队列、 rabbitmq , scheduling )保存到 DB
显示统计都从 redis/memcached 中读取,非常快

重点是缓存,统计都在内存中做,异步持久化到 db ,或者 db 直接不存, redis 也可以做持久化

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/234720

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX