![]() | 1 archer2ee 2016-04-21 11:11:05 +08:00 via iPhone 插入后不影响 A 的自增序列的话,整个表就乱套了,后续可能会导致 id 重复的问题。 这种情况要么在插入到 A 的时候不带 id ,让其随 A 自增,要么就做 DB 同步吧。 坐等高手。 |
![]() | 2 Mayuyu OP @archer2ee 所以 B 服务器的 A 表自增 ID 才设为两千万啊。当初这样设计就是为了拿来同步用的,这样重复的可能性就小多了,然而万万没想到插入之后自增 id 也会变的问题。 |
3 yuankui 2016-04-21 11:16:18 +08:00 |
![]() | 4 shiji 2016-04-21 11:20:47 +08:00 理论上就应该 AUTO_INCREMENT 变成 20000515 呀。 如果你能确定这个表再怎么增加,都不会过 20000000 产生冲突, 你可以手动把 AUTO_INCREMENT 改回去,反正这种操作是不规范的也是不推荐的。 |
![]() | 6 scusjs 2016-04-21 12:35:51 +08:00 数据同步过去后, alter table table_name AUTO_INCREMENT=n |
![]() | 7 msg7086 2016-04-21 12:41:51 +08:00 |
![]() | 8 pubby 2016-04-21 13:14:14 +08:00 master-master 的方式,不是应该设这两个参数么? A: auto-increment-increment = 2 auto-increment-offset = 0 B: auto-increment-increment = 2 auto-increment-offset = 1 auto-increment-increment=机器数 N auto-increment-offset = 每台机器序号 [0,1,....,N-1] |
![]() | 9 void1900 2016-04-21 13:43:04 +08:00 当初设计就有问题。。。 |
10 BeanMr 2016-04-21 13:50:24 +08:00 via Android 如果确认数据库数量为什么不用遗赠步长控制呢? A 库用奇数 B 用偶数! |
![]() | 11 kamushin 2016-04-21 14:01:26 +08:00 AUTO_INCREMENT 不应该用作主键(提升数据库性能)外的任何目的. |
![]() | 12 darasion 2016-04-21 14:11:01 +08:00 为什么要这么做? 怕浪费 ID 空间么? 。 |
![]() | 13 Mayuyu OP @darasion 因为公司会在其他很多城市都有业务,所以会在当地架一台服务器。 魔都的作为主数据库,下面城市的数据会定时的插入到主库,但是为了每个城市的数据写入到上海数据库的时候不重复,所以才想到了用 2kw , 3kw 。。。。。一直到 9kw 。 不是传统的主从或者主主,需求是:魔都的数据库里面有其他城市的数据,但其他城市的数据库里面只有本地的数据。但偶尔也可能会让本地有上海的数据。 |
![]() | 15 minotaur 2016-05-04 15:41:36 +08:00 为啥不 mod 1024 ,用范围。 |