2017-05-02 00:32:14 3652次浏览 4条回答 0 悬赏 25 金钱

各位大神晚上好!
前一阵子帮助朋友维护论坛,遇到一个问题。
论坛的数据库是普通的树形结构,也就是以用户为中心,各种功能、配置以及产生的内容作为树的发散。
由于论坛年代久远,再加上当时用的模板并没有深入地设计,现在遇到一些性能瓶颈。比如,一个用户最多可以关注200人,一万个用户就要预留200万,最初设计就是简单的用户关注关系表,所以现在每次读取的时候开销都很大。
然后我想到的办法是,用text存储一个数组(长字符串),数组的键值就是用户ID。这样做的好处是节省了部分开销,并且用户关注基本上不必设置上限。坏处是查询粉丝的难度相当高。
我觉得这应该是一个普遍会遇到的问题,思路应该不会错,想问一下各位大神,是不是有更好的方法

补充于 2017-05-06 15:53

大家说的都对,哪种方法最好呢

  • 回答于 2017-05-02 08:28 举报

    拆分数据表,把关注数据单独列出管理。

  • 回答于 2017-05-02 10:59 举报

    mysql分表分库 + NOSQL list存储关系速度刚刚的

  • 回答于 2017-05-02 15:19 举报

    redis,队列试试

  • 回答于 2017-05-02 16:59 举报

    直接独立一个关注表,也就200w的数据。
    数据表:uid(发起关注的人),fuid(被关注的人)

    如果关注的人和被关注的人及其数量查询比较频繁,那就将每个用户的关注的人、粉丝单独缓存到内存中即可。

您需要登录后才可以回答。登录 | 立即注册
raijin
总监

raijin 安徽合肥

注册时间:2016-03-13
最后登录:2022-09-28
在线时长:75小时44分
  • 粉丝3
  • 金钱1880
  • 威望0
  • 积分2630

热门问题