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));


目录
相关文章
|
10月前
|
算法 数据库
Mycat【Mycat分片规则(取模、分片枚举、范围约定)】(六)-全面详解(学习总结---从入门到深化)
Mycat【Mycat分片规则(取模、分片枚举、范围约定)】(六)-全面详解(学习总结---从入门到深化)
149 0
|
存储 SQL 缓存
27MyCat - 分片规则
27MyCat - 分片规则
58 0
30MyCat - 分片规则(求模)
30MyCat - 分片规则(求模)
39 0
28MyCat - 分片规则(分片枚举)
28MyCat - 分片规则(分片枚举)
50 0
36MyCat - 分片规则(一致性hash)
36MyCat - 分片规则(一致性hash)
75 0
33MyCat - 分片规则(ASCII码求模范围约束)
33MyCat - 分片规则(ASCII码求模范围约束)
48 0
|
算法
29MyCat - 分片规则(固定分片hash算法)
29MyCat - 分片规则(固定分片hash算法)
66 0
34MyCat - 分片规则(应用指定)
34MyCat - 分片规则(应用指定)
75 0
38MyCat - 分片规则(自然月分片)
38MyCat - 分片规则(自然月分片)
87 0
|
存储 算法 关系型数据库
MyCat - 分片 - 分片规则 - 取模范围算法 | 学习笔记
快速学习 MyCat - 分片 - 分片规则 - 取模范围算法
MyCat - 分片 - 分片规则 - 取模范围算法 | 学习笔记