具有大量帖子的Mysql用户提要

时间:2018-06-11 18:40:32

标签: mysql bigdata

我有三个mysql表:

enter image description here

  1. users - 包含用户详细信息
  2. 帖子 - 包含帖子详情
  3. post_user - 包含每个用户应访问的帖子(用于阅读目的)
  4. 我真的需要数据透视表,因为有很多逻辑可以决定用户是否可以阅读帖子。

    此解决方案存在一些问题:

    1. 第一个问题是我有200k +活跃用户,因此每次创建新帖子时都会向数据透视表中插入200k行(post_user)
    2. 第二个问题是为每个用户提取帖子。它有点慢,所以我尝试使用Redis存储每个用户的查询结果,所以我不必从那个巨大的表中获取结果。
    3. 数据库大小增长非常快:/

1 个答案:

答案 0 :(得分:1)

为每个post添加200K行 - Yikes!仅此一点就是设计糟糕的表现。

听起来像是"等级树"可以作为一个"角色"或" group"。

无论调用什么,实现都是相同的:两个关系表:

  • user< - >组(例如,用户所在树的哪个部分)
  • group< - >帖子(哪个小组可以阅读特定的帖子)

两者都很多:很多,并且应该使用指南here来实现性能。请注意,id(对于映射表)是无用的,可能会妨碍性能。

相关问题