QQ 里的‘好友动态’,微信里的‘朋友圈’该怎么设计表结构呢?

2015-04-21 13:10:24 +08:00
 solaro

如题,我很好奇,像他们腾讯用户量这么大,时刻更新的数据也这么多,他们要怎么去设计数据库的表结构?怎么优化???如果用户量不大的情况下,日活200万,每个人可以关注5000个朋友,这个时候表结构得怎么设计才合理,有啥其他的优化方法吗?数据库用mysql。这个是一个实际项目问题。求各位大神。

2434 次点击
所在节点    数据库
40 条回复
J2eePro
2015-04-21 13:25:49 +08:00
Sphinx?
decken
2015-04-21 13:25:59 +08:00
应该用nosql了
huijiewei
2015-04-21 13:26:00 +08:00
这种一般都是 NoSQL 数据库
ipconfiger
2015-04-21 13:26:32 +08:00
关系型数据库不擅长处理这类结构
solaro
2015-04-21 13:26:49 +08:00
啊。。nosql。。monogdb??redis??
palytoxin
2015-04-21 13:28:38 +08:00
redmine中的项目动态设计思路挺有趣
arkilis
2015-04-21 13:31:28 +08:00
monogdb, I guess
solaro
2015-04-21 13:38:40 +08:00
@palytoxin 求个解决方案。。
Prothunder
2015-04-21 13:41:02 +08:00
redis
hahasong
2015-04-21 13:41:53 +08:00
用户量大就加机器呗,自建机房,北京,深圳,上海都有。一天光电费都要烧很多。上次新闻上海的还挖断过光缆
YORYOR
2015-04-21 13:50:31 +08:00
hbase
abscon
2015-04-21 13:52:25 +08:00
我猜是 Graph database
caoyue
2015-04-21 13:55:23 +08:00
瞎猜一个,如果是我可能这么设计:
假设 A 和 B 关注了 C,C 发布了一条更新
那么把这条更新同时写到 A,B 各自的关注表里面去
A 和 B 各自读自己的关注表就行了
这样算起来,单独看个人的数据量就没有那么大了=-=
xenme
2015-04-21 14:05:51 +08:00
@caoyue 你想每个人的好友至少几十个吧,就算50个,数据量就变成了50倍。
explon
2015-04-21 14:08:46 +08:00
@caoyue 新加一个好友还要全部拷贝一遍?
huijiewei
2015-04-21 14:09:39 +08:00
@caoyue 高速分布式缓存可以这样用,基础数据库结构这样设计可以算严重事故类型了
faceair
2015-04-21 14:11:43 +08:00
@explon 肯定不会拷贝的,应该是筛选访问权限
Kilerd
2015-04-21 14:31:11 +08:00
那么大的数据量,关系型的数据库已经不能用了吧。非关系型的会好很多。

不过我更喜欢mongodb
xiaogui
2015-04-21 14:34:38 +08:00
redis,建议楼主搜下新浪微博分享出来的对 redis 使用的资料
zts1993
2015-04-21 14:55:57 +08:00
redis

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

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

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

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

© 2021 V2EX