请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于获取帖子列表页的扩展问题

老师您好,我想问一个与咱们课程项目业务逻辑有关的一个扩展问题。

就是小组内帖子列表页的获取,我们课程中,目前获取的都是该帖子的一些信息数据,如title、作者等。我想到一个需求,是像知乎或者一些论坛的列表页一样,当我们获取帖子列表的时候,一起返回的不止是基础信息,还包括该帖子的第一个答案或者该帖子的前n个回复者名字图标等等,就是同时获取了列表中每个帖子关联的回复中的一些数据。

这种功能后端逻辑该如何实现,最简单粗暴的是查询到列表页的20个帖子后,依次获取每个帖子对应的信息。但是这样性能上肯定不合理,如果直接join查询,对于一些帖子可能还没有回复等等情况,又不好控制查询数据的条目,一般的网站对于这种功能需求都是怎样处理的呢?

正在回答 回答被采纳积分+3

1回答

bobby 2020-06-01 14:12:31

两种方法:1, 使用join, 有些没有那就没有啊, 如果有超过20个那可以使用子查询也可以啊,不一定非要用join,子查询也挺合适的

        2. 这些都会实时查询数据库,并发高的时候可能会影响性能,所以可以一张表专门记录某一个帖子的最新或者最热门的问题,数量控制一下,每次有新的回答就更新这个表 ,或者你写一个定时任务定时去计算并更新这张表

0 回复 有任何疑惑可以回复我~
  • 提问者 烈焰卡卡 #1
    我主要担心的不是没有,是帖子回复过多,一次join会关联出太多的数据影响响应速度。子查询的SQL逻辑是怎样的的,我没太想出来?
    回复 有任何疑惑可以回复我~ 2020-06-01 14:23:58
  • bobby 回复 提问者 烈焰卡卡 #2
    别小看join速度, 子查询你最好学习一下 因为子查询相对比较复杂 但是很灵活
    回复 有任何疑惑可以回复我~ 2020-06-01 14:59:08
  • 提问者 烈焰卡卡 回复 bobby #3
    嗯呢,子查询的实现我查到了,得研究一下。join的速度我理解,我的担心点在于,一个帖子假如有上万的回复,那么20个帖子直接join,查询的数据量和返回给程序端的数据量都可能会非常大,这个传输可能也会拖慢速度
    回复 有任何疑惑可以回复我~ 2020-06-01 15:06:35
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信