关于mysql分库水平扩容,数据迁移的问题

pokerface
  • 628

图片描述

如图所示
1、5、9、2...代表某表id,

当我扩容4个库为8个库的时候 (4*2)

5、6、7、8这些id显然应该是 5、6、7、8库的数据。

那么需要建立5,6,7,8库后,把1、2、3、4库的id除以8取余后再插入5、6、7、8库?还得删除1、2、3、4库的那些被迁移的数据。

问题是:不知道大家如何解决的?

回复
阅读 1.9k
2 个回答

5-8先同步1-4的数据过去,切换完之后,各自删掉不需要的数据(当然如果数据量不大不删也可以,留着不用而已)

jimma
  • 1
新手上路,请多包涵

我习惯是表里储备一个标记字段表示版本号,每次迁移或者升级维护或者有调整是取一个版本号写入,迁移时先复制表备用,然后逐条根据版本号校对处理,当然为了快直接复制表拿去也行,但考虑到有负责业务逻辑升级迁移的话可能不是那么简单复制就能解决的还是预留这样一个字段比较好。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏