请教下这样的需求数据库怎么设计?

2013-04-11 16:54:52 +08:00
 hennywei
按天统计用户的数据,比如关注数 发帖 帖子被浏览数等,想了几个方案按天分表day1 day2.。。。或者塞进一个表里,求更好的建议!!
3316 次点击
所在节点    MySQL
4 条回复
wy315700
2013-04-11 17:01:34 +08:00
一张表表示今天的
一张表表示历史数据
每天0点的时候把今天的数据塞进历史数据中
fywtat
2013-04-12 09:29:33 +08:00
@wy315700 如果项目不是特别大,一张表放一个月也行!
shunai
2013-04-12 09:54:39 +08:00
一张表保存这些数据,每次往cache中更新,一段时间持久化到数据库,每次从cache读
foxidea
2013-04-12 10:42:29 +08:00
表结构:

[TableName]
YEAR (年)
MONTH (月)
DAY (日)
Times (次数)
UserId (用户ID)


假设要用到用户2个月的统计数据,那就是 删除掉 二个月以前的数据


如果有 10万用户,那么表的最大数据量就是 10万 * 30天 * 2个月 = 600 万 条数据

所以考虑分表,分表不能按照日期进行分表,因为一个用户的数据,要在一张表里面,才便进行聚合运算

把表名进行命名 按照用户ID 把用户ID 反过来 取 3位

如用户ID 为 123456789

统计信息 存储在 tableName = "table_"+987;

然后再进行存储

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

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

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

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

© 2021 V2EX