大家是如何汇总分表数据的?

发布于 2022-09-07 00:06:31 字数 83 浏览 22 评论 0

比如评论表,我们分成了 100 张表,按照 userid 哈希算法分,那么后台管理要显示评论列表,总不能联合查询 100 张表,这种情况大家是如何做的?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

二智少女 2022-09-14 00:06:31

我觉得还有一个方法,就是建一张评论总表,这张表的字段不必跟分表一致,最关键的是要评论 id,和创建时间,后台管理就可以读取这张总表,评论的详情字段去分表查询。

比如一页 50 条记录,最多 50 次另外的查询,分别去分表查询详情数据展现出来,虽然多一些查询,但是在后台管理系统用不会造成很大压力,

醉南桥 2022-09-14 00:06:31

我提个曲线救国的方法,就别按userid分表了,怪累的,直接根据评论时间按月分表,我们的经验是Mysql的话每张表不超过2000万条数据就行,这样汇总起来就方便多了,后台管理唯一需要注意的就是pagination的问题。

就算是抛砖引玉了,希望能帮到你。

更新:flc1125提到了负载的问题,我顶多能想到加redis缓存,还想问问这个评论的主要查询业务是啥?是展示某个文章的最近评论?

野却迷人 2022-09-14 00:06:31

首先你的表拆分法是对的。其次增加一个同步表。该表的数据保留最近X天的评论数据,数据来源,由其他100个表用联合组成;数据操作由定时或mq方式同步过去。该表仅用于后台使用(或并发量小的业务)

北风几吹夏 2022-09-14 00:06:31

新建一张表,每隔一段时间更新这张表,比如页面一次加载三十条评论,那么就一次查出三十条数据,等到时候页面载入时从这里取。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文