分布式数据库中间件 DDM-MOD_HASH算法:算法计算方式

时间:2025-01-26 10:36:32

算法计算方式

方式一:拆分键是整型

表1 拆分键是整型时的计算方式

条件

算法

举例

分库拆分键 ≠ 分表拆分键

分库路由结果 = 分库拆分键值 % 分库数

分表路由结果 = 分表拆分键值 % 分表数

分库 :16 % 8 = 0

分表:16 % 3 = 1

分库拆分键 = 分表拆分键(拆分键)

分表路由结果 = 拆分键值 % (分库数 * 分表数)

分库路由结果 = 分表路由结果 / 分表数

说明:

分库路由结果四舍五入到最接近的整数。

分表:16 % (8 * 3) = 16

分库 :16 / 3 = 5

方式二:拆分键是字符类型

表2 拆分键是字符型时的计算方式

条件

算法

举例

分库拆分键 ≠ 分表拆分键

分库路由结果 = 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

support.huaweicloud.com/usermanual-ddm/ddm_10_0002.html