32MyCat - 分片规则(取模范围约束)

简介: 32MyCat - 分片规则(取模范围约束)

此种规则是取模运算与范围约束的结合,主要为了后续数据迁移做准备,即可以自主决定取模后数据的节点分布。

<tableRule name="sharding-by-pattern">
   <rule>
     <columns>user_id</columns>
     <algorithm>sharding-by-pattern</algorithm>
   </rule>
 </tableRule>
<function name="sharding-by-pattern" class="org.opencloudb.route.function.PartitionByPattern">
   <property name="patternValue">256</property>
   <property name="defaultNode">2</property>
   <property name="mapFile">partition-pattern.txt</property>
 </function>

partition-pattern.txt:

partition-pattern.txt 
# id partition range start-end ,data node index
###### first host configuration
1-32=0
33-64=1
65-96=2
97-128=3
######## second host configuration
129-160=4
161-192=5
193-224=6
225-256=7
0-0=7

配置说明:

上面columns 标识将要分片的表字段,algorithm 分片函数,patternValue 即求模基数,defaoultNode 默认节点,如果配置了默认,则不会按照求模运算。

mapFile 配置文件路径

配置文件中,1-32 即代表id%256后分布的范围,如果在1-32则在分区1,其他类推,如果id非数据,则会分配在defaoultNode

默认节点

String idVal = “0”;
Assert.assertEquals(true, 7 == autoPartition.calculate(idVal));
idVal = “45a”;
Assert.assertEquals(true, 2 == autoPartition.calculate(idVal));


目录
相关文章
|
3天前
|
算法 数据库
Mycat【Mycat分片规则(取模、分片枚举、范围约定)】(六)-全面详解(学习总结---从入门到深化)
Mycat【Mycat分片规则(取模、分片枚举、范围约定)】(六)-全面详解(学习总结---从入门到深化)
32 0
|
7月前
30MyCat - 分片规则(求模)
30MyCat - 分片规则(求模)
12 0
|
7月前
28MyCat - 分片规则(分片枚举)
28MyCat - 分片规则(分片枚举)
16 0
|
7月前
33MyCat - 分片规则(ASCII码求模范围约束)
33MyCat - 分片规则(ASCII码求模范围约束)
21 0
|
7月前
|
算法
29MyCat - 分片规则(固定分片hash算法)
29MyCat - 分片规则(固定分片hash算法)
25 0
|
7月前
38MyCat - 分片规则(自然月分片)
38MyCat - 分片规则(自然月分片)
25 0
|
7月前
36MyCat - 分片规则(一致性hash)
36MyCat - 分片规则(一致性hash)
33 0
|
7月前
31MyCat - 分片规则(按日期分片)
31MyCat - 分片规则(按日期分片)
20 0
|
存储 算法 关系型数据库
MyCat - 分片 - 分片规则 - 取模范围算法 | 学习笔记
快速学习 MyCat - 分片 - 分片规则 - 取模范围算法
149 0
MyCat - 分片 - 分片规则 - 取模范围算法 | 学习笔记
|
存储 算法 关系型数据库
MyCat - 分片 - 分片规则 - 范围求模算法 | 学习笔记
快速学习 MyCat - 分片 - 分片规则 - 范围求模算法
125 0
MyCat - 分片 - 分片规则 - 范围求模算法 | 学习笔记