支持分布式数据库同步操作之表主键设计
如果应用需要进行异地部署,并且要进行同步复制等操作,那么对数据库进行设计时,要考虑数据库的同步和冲突问题。
这和读写分离的主从数据库同步稍有不同。因为不会有多个写得入口。
一般很多人在设计表结构时,喜欢使用自增长的ID为主键,这在异地多应用部署营运的情况下,对导致主键的重复冲突。对数据的一致性造成影响。
解决办法:
1. 如果表的结构已经是ID自增长的类型了,则对其值的范围进行划分,比如一个地域的数据库中,id值要在69999999999一下,而另一个id值要在700000000000以上,则可以避免冲突出现。
2. 采用其他计算方式产生不重复的主键值。这有很多方法,最简单的是使用uuid,或者自定义一个算法。
3. 其它办法,大家自己想想。