周五思考题:关于分表和分区表导致的热点数据问题

2023-11-03 15:25:43 +08:00
 fatyoung
以 mysql 为背景。假设我要把用户的发言记录(或者说朋友圈)持久化,因为用户量比较大,每个用户的发言记录数量不限制。

我先想到的处理方法就是根据用户 ID 取模做分表存储,这样方便查询每个用户各自发表过的记录,但是可能存在热点数据的问题,分表数据量可能不均匀。

还有一个疑问就是 mysql 是支持分区表的,这种场景下,使用用户 ID 取模的方式去分表是否合适?使用分区表或者分表去做,有什么区别吗?或者说优缺点?

核心场景有两个:
1.用户发言
2.用户查看自己的发言记录

ps: 大家请暂时忽略数据量问题,忽略 "这个数据量单表就能支撑"
488 次点击
所在节点    MySQL
1 条回复
julyclyde
2023-11-04 12:57:07 +08:00
可以做一个 router 函数,根据 id 进行人为分区
代替取模这种和业务无关的纯计算方法

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/988309

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX