分库分表扩容迁移流程图
此章节是将扩容过程中,如何将数据迁移新表、更新虚拟分片路由表、清除旧表数据的每个步骤整理成了流程图中
⚠️核心策略说明:
本扩容方案使用 用户ID 而非订单号来计算虚拟分片ID,确保同一用户的所有订单保持在同一张表中。
原因:
- 订单号虽然包含用户ID基因位,但
orderNumber % 128 ≠ userId % 128 - 如果按订单号判断,同一用户的订单会被分散到不同表
- 使用用户ID判断,保证数据聚合性和查询性能
关于每个步骤的代码以及详细讲解,可以跳转到:虚拟分片的分库分表扩容流程解析
1. 总体流程图
2. 单库迁移流程
3. 单表迁移详细流程
4. 完整迁移流程(核心)
5. 数据迁移详细流程
6. HintManager 强制路由机制
7. 虚拟分片路由原理
8. 路由表更新过程
9. 数据清理流程
10. 异常回滚流程
11. 完整扩容时序图
12. 虚拟分片分配图
颜色说明
- 🔵 浅蓝色 (#e3f2fd):开始节点、输入节点
- 🟢 浅绿色 (#c8e6c9):成功节点、完成节点
- 🔴 浅红色 (#ffcdd2):失败节点、异常节点
- 🟣 浅紫色 (#f3e5f5, #e1bee7):初始化节点、处理节点、计算节点
- 🔵 蓝色 (#bbdefb):查询操作、数据库读取
- 🌸 粉色 (#f8bbd0, #fce4ec):数据插入、路由更新
- 🟠 浅橙色 (#ffe0b2):游标更新、控制节点
- 🔴 橙红色 (#ffccbc):删除操作、回滚节点