Mycat 分片规则详解--固定 hash 分片

  • 实现方式:该算法类似于十进制的求模运算,但是为二进制的操作,例如,取 id 的二进制低 10 位 与 1111111111 进行 & 运算
  • 优点:这种策略比较灵活,可以均匀分配也可以非均匀分配,各节点的分配比例和容量大小由partitionCount 和 partitionLength两个参数决定
  • 缺点:和取模分片类似。
  • 配置示例

    <tableRule name="rule1">

    <rule>

    <columns>id</columns>

    <algorithm>func1</algorithm>

    </rule>

    </tableRule>

    <function name="func1" class="io.mycat.route.function.PartitionByLong">

    <property name="partitionCount ">2,1</property>

    <property name="partitionLength">256,512</property>

    </function>

  • 相关属性:
    • partitionCount:为分片个数列表
    • partitionLength:为分片范围列表,分片范围最大 2^10 = 1024

    注意:在示例中配置的分片策略,希望将数据水平分成3份,前两份各占 25%,第三份占 50%。

posted @ 2018-02-23 14:30  立3807  阅读(1150)  评论(2编辑  收藏  举报