MySQL分表问题。

发布于 2022-09-06 20:07:07 字数 208 浏览 28 评论 0

将入队一个订单表进行了水平拆分,采用一致性Hash算法,比如现在有2000w+订单,拆分成10各表,tb0,tb1,tb2...tb9。查询时可以对id进行运算得出对应的表。

id%10=n => tbn.

那么在插入一个新的订单时如何去选择插入的表?

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

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

发布评论

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

评论(2

梦行七里 2022-09-13 20:07:07

你这个应该有个专门生成ID的服务,先忽略这个ID生成的实现细节,那么每次插入表也是一样的,获取到生成的ID之后,对这个ID进行运算,从而得到插入的表。
我下面贴一篇分布式ID生成的文章:
https://mp.weixin.qq.com/s?__...

此处的ID生成应该也是类似的。

丶视觉 2022-09-13 20:07:07

tb0-9表的id是自增id,即记录的主键ID
选取一个字段用来唯一标识一个订单,比如订单ID,订单ID%10=n => tbn
主键ID 不等于 订单ID,读取和插入数据计算表号时都用订单ID即可
当然并不一定是订单ID,取决于具体的场景,只要能够用来唯一标识一个订单即可(可以是多个字段的组合,取下hash即可)

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