分布式数据库中间件 DDM-MOD_HASH算法:算法计算方式
算法计算方式
方式一:拆分键是整型
条件 |
算法 |
举例 |
---|---|---|
分库拆分键 ≠ 分表拆分键 |
分库路由结果 = 分库拆分键值 % 分库数 分表路由结果 = 分表拆分键值 % 分表数 |
分库 :16 % 8 = 0 分表:16 % 3 = 1 |
分库拆分键 = 分表拆分键(拆分键) |
分表路由结果 = 拆分键值 % (分库数 * 分表数) 分库路由结果 = 分表路由结果 / 分表数
说明:
分库路由结果四舍五入到最接近的整数。 |
分表:16 % (8 * 3) = 16 分库 :16 / 3 = 5 |
方式二:拆分键是字符类型
条件 |
算法 |
举例 |
---|---|---|
分库拆分键 ≠ 分表拆分键 |
分库路由结果 = hash(分库拆分键值) % 分库数 分表路由结果 = hash(分表拆分键值) % 分表数 |
hash(‘abc’)=‘abc’.hashCode()=96354 分库 :96354 % 8 = 2; 分表 :96354 % 3 = 0; |
分库拆分键 = 分表拆分键(拆分键) |
分表路由结果 = hash(拆分键值) % (分库数 * 分表数) 分库路由结果 =分表路由结果 / 分表数
说明:
分库路由结果四舍五入到最接近的整数。 |
hash(‘abc’)=‘abc’.hashCode()=96354 分表 :96354% (8 * 3) = 18 分库 :18 / 3=6 |