业务订单分库分表二-扩容
来源:互联网 发布:神木法院淘宝网下载 编辑:程序博客网 时间:2024/06/05 03:19
一.原先业务订单情况
2个物理表, order_0000,order_0032
每个分组32个逻辑分表
原先元素分布:
逻辑分表号:0-31 在order_0000,32-63在order_0032
物理分表名=逻辑分表号/32%32
二.扩容
扩展成4个物理分表
每个逻辑分组有:16个逻辑分表
即 order_0000,order_0016,order_0032,order_0048
物理分表名=逻辑分表号/16*16
数据迁移:
order_0000中逻辑分表号:16-31的数据往order_0016迁
order_0032中,逻辑分表号:48-63的数据往order_0048迁
即只需迁移原先每个物理表一半的数据到新的物理表,二分裂变。
扩容的本质是物理表数增加,逻辑分组表数减少。
三.扩容具体过程
eg:
原先1个库,二个表,扩容成4个表。
原先物理表:
0000,0032
0000管理虚拟id范围为:0-31
0032管理虚拟id范围为:32-63
扩容后物理表:
0000,0016,0032,0048
具体流程:
0.准备好0016及0048两张新表。
1.对外停止交易,停止相应会引起订单状态变化的job
2.将0000表数据拷到0016,将0032拷到0048。
3.校验0016及0048中表数据与0000及0032的数据一致
从条数,明细等进行核对,相应订单明细记录状态都一致。
3.启用新的规则
根据用户id路由到表规则更改为:userId %64 /16 * 16 (原先:userId %32 /32 * 32)
根据订单号id路由到表规则更改为:取订单最后2位分表id / 16 * 16 (原先是/32 * 32)
这步做完后相应的查询流量已经变为新的查询。
4.开启交易,开启之前停掉的job
5.定时check数据,日志看是否有异常
6.找个时间点清除0000及0032中不用的数据
0000的虚拟id区间为:15-31的清掉
0032的虚拟id区间为:48-63的清掉
阅读全文
0 0
- 业务订单分库分表二-扩容
- 业务对象销售订单
- 业务订单分表一
- 业务 电商 订单
- 订单管理业务层
- 01电商业务-订单业务
- 一次订单业务问题的排查
- 扩容
- 使用商务先锋软件 业务不用跑,订单送上门!
- 围绕业务订单进行的可扩展后台设计
- 新增业务订单设计——产品形态随想
- SAP ERP系统业务优化之采购订单追踪
- 京东虚拟业务多维订单系统架构设计
- 订单
- 订单
- 订单
- 订单
- 订单
- CCF 模拟题 有趣的数 (数位DP)
- c++性能优化
- Okabe and El Psy Kongroo CodeForces
- 考核题整理
- Ajax核心对象 XMLHTTPRequest
- 业务订单分库分表二-扩容
- 水晶宫发布2017-18赛季客场球衣
- 图---存储方式一
- maven打包方式
- 可变参数列表解析
- 【Javascript笔记】1.2 Javascript使用形式
- POJ 1426 Find The Multiple
- input框清空
- 初始java (ki)