开发者社区> 问答> 正文

如何提高timeline的响应速度?

最近在做一个有timeline功能的网站,及要把用户关注的人的一些信息按时间显示出来。
一般而言有两个方案,一是在用户的关系表(查询得到关注的人)和用户的一些动作表(用户行为)这两个表中做联合查询,但是可能在用户数比较多的情况下效率比较慢,这是所谓的pull方法。
一个是每个用户有一定动作后在队列中把用户动作分发到每一个关注他的人那里,这样对用户来说可以直接查询最近的timeline,效率比较高,但是要涉及一系列队列动作,而且增加或者取消了关注还需要修改以前已经推送的结果,好处就是用户数量比较大的时候效率较高,当然也有一定的延迟。这是所谓的push方法。
两种方法都要配合缓存来提高效率。
用户数量不太多的情况下第一种方案速度是不错的,但如果用户数量增加之后该如何考虑转到第二种方案呢?一般的数据库(mysql)的join查询在用户数量达到什么数量级的时候会明显影响使用效率?
请问能介绍一下这方面的经验吗?

展开
收起
落地花开啦 2016-02-07 15:19:44 2682 0
1 条回答
写回答
取消 提交回答
  • 喜欢技术,喜欢努力的人

    有的网站使用缓存直接处理,每个人有自己的一个缓存队列,当发布新动态或者关注的人有新动态的时候,就会清空这个队列,重新从数据库中获取信息。

    2019-07-17 18:39:08
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载