双A同步,怎样解决2个表之间自增ID主键冲突?
xoefb8l81#
两边的自增ID,可以弄成奇偶数,也可以是1边用1亿一下的,另一边用1亿以上的,错开即可
67up9zun2#
@agapple 用1亿这方案不行,我们的业务一下子就超过1亿了,就是说otter针对主键冲突大的情况支持的不够好 是吧。
ckx4rj1h3#
我们是用GUID作为主键,基本不用考虑主键冲突问题。
l2osamch4#
用机房特征去生成主键就行了,例如,A机房只生成A1234567,B机房只生成B1234567
fwzugrvs5#
用id分段的行不通啊,大id的数据同步过去,小id的表的自增id直接变1亿了,又回到同样的起点了
gcxthw6b6#
我们是业务层实现分布式 ID 来代替自增ID(雪花算法的改造),保证 ID 不冲突
6条答案
按热度按时间xoefb8l81#
两边的自增ID,可以弄成奇偶数,也可以是1边用1亿一下的,另一边用1亿以上的,错开即可
67up9zun2#
@agapple 用1亿这方案不行,我们的业务一下子就超过1亿了,就是说otter针对主键冲突大的情况支持的不够好 是吧。
ckx4rj1h3#
我们是用GUID作为主键,基本不用考虑主键冲突问题。
l2osamch4#
用机房特征去生成主键就行了,例如,A机房只生成A1234567,B机房只生成B1234567
fwzugrvs5#
两边的自增ID,可以弄成奇偶数,也可以是1边用1亿一下的,另一边用1亿以上的,错开即可
用id分段的行不通啊,大id的数据同步过去,小id的表的自增id直接变1亿了,又回到同样的起点了
gcxthw6b6#
我们是业务层实现分布式 ID 来代替自增ID(雪花算法的改造),保证 ID 不冲突