订单记录 须要 分库分表 存储,分库、分表 的 sharding 策略 都是 基于 orderId 进行 计算spa
若是 订单记录 分库分表 的 结果为 x * y(有 x 个库,每一个库中有 y 张表),那么 库、表 的 sharding 策略应当为blog
这种 sharding 策略不正确,数据 分摊 不均匀im
eg一、4 * 4d3
[0、四、八、十二、1六、20] 这些数字 模 4,只会余 0 数据
eg二、4 * 6db
[0、四、八、十二、1六、20] 这些数字 模 4,只会余 0、二、4 img
【问题】di
为何 [0、四、八、十二、1六、20] 这些数字 对 4 或 6 取模 所获得的 余数 之间 不是连续的?(致使 不能 连续地、均匀地 分摊在 全部 表中)co
【回答】d3
【解决】
将 [0、四、八、十二、1六、20] 这些数字 除以 4,使得 step 为 1
eg一、4 * 4
[0、四、八、十二、1六、20] 这些数字 整除 4,模 4,会余 0、一、二、3
eg二、4 * 6
[0、四、八、十二、1六、20] 这些数字 整除 4,模 6,会余 0、一、二、三、四、5