关于用户关注的数据库结构设计 [ 2.0 版本 ]
各位大神晚上好!
前一阵子帮助朋友维护论坛,遇到一个问题。
论坛的数据库是普通的树形结构,也就是以用户为中心,各种功能、配置以及产生的内容作为树的发散。
由于论坛年代久远,再加上当时用的模板并没有深入地设计,现在遇到一些性能瓶颈。比如,一个用户最多可以关注200人,一万个用户就要预留200万,最初设计就是简单的用户关注关系表,所以现在每次读取的时候开销都很大。
然后我想到的办法是,用text存储一个数组(长字符串),数组的键值就是用户ID。这样做的好处是节省了部分开销,并且用户关注基本上不必设置上限。坏处是查询粉丝的难度相当高。
我觉得这应该是一个普遍会遇到的问题,思路应该不会错,想问一下各位大神,是不是有更好的方法
raijin 补充于 2017-05-06 15:53
大家说的都对,哪种方法最好呢
共 4 个回答
-
qqa4560354 回答于 2017-05-02 15:19 举报
redis,队列试试
-
e282486518 回答于 2017-05-02 16:59 举报
直接独立一个关注表,也就200w的数据。
数据表:uid(发起关注的人),fuid(被关注的人)如果关注的人和被关注的人及其数量查询比较频繁,那就将每个用户的关注的人、粉丝单独缓存到内存中即可。
raijin 安徽合肥
注册时间:2016-03-13
最后登录:2022-09-28
在线时长:75小时44分
最后登录:2022-09-28
在线时长:75小时44分
- 粉丝3
- 金钱1880
- 威望0
- 积分2630