开发者学堂课程【全面讲解开源数据库中间件MyCat使用及原理(二):MyCat - 分片 - 分片规则 - 取模分片】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/756/detail/13265
MyCat - 分片 - 分片规则 - 取模分片
内容介绍:
一、概念
二、示例
一、概念
取模分片顾名思义会对指定的字段进行求模运算,然后根据求模运算结果来决定当前这条记录将会在哪一个节点进行存储。
<tableRule name=“mod-long”>
<rule>
<columns>id</columns>
<algorithm>mod-long</ algorithm>
</rule>
</tableRule>
<function name=”mod-long” class=”io.mycat.route.function.partitionByMod”>
<property name=”count”>3</property>
</function>
取模分片的取模规则或者分片规则定义的名称叫做 mod-long。当然可以自己名义。rule 当中配置的是规则,columns 指的是按照按照 id 字段进行求模运算,求模算法是 mod-long,mod-long 实际上引用的是的求模函数求模函数指定了 PartitionByMod ,它是 mycat 中求模运算的类。然后有一个属性叫做 count,里面配置的是节点的数量,也就是在求模时的数字就是 count 。
二、示例
实际上在讲解水平拆分时,就使用了 mod-long。并且还分析了 1%3=1,因为节点的索引是从零开始的,对应的节点对应第二个节点,2%3=2 是第三个节点,然后接下来 3%3=0,对应第一个节点。
这是分片规则的第一种,按照指定的字段进行取模分解。