阅读(4876) (12)

Mycat2 哈希分片 RANGE_HASH

2021-09-08 13:57:19 更新

RANGE_HASH

RANGE_HASH(字段1, 字段2, 截取开始下标)

仅支持数值类型,字符串类型

当时字符串类型时候,第三个参数生效

计算时候优先选择第一个字段,找不到选择第二个字段

如果是字符串则根据下标截取其后部分字符串,然后该字符串hash成数值

根据数值按分片数取余

要求截取下标不能少于实际值的长度

两个字段的数值类型要求一致

create table travelrecord(
...
)ENGINE=InnoDB DEFAULT CHARSET=utf8 
dbpartition by RANGE_HASH(id,user_id,3) dbpartitions 3
tbpartition by RANGE_HASH(id,user_id,3) tbpartitions 3;