您的位置:首页 > 其它

Mycat 分片规则详解--ASCII 取模范围分片

2018-02-23 14:31 369 查看
  • 实现方式:该算法与取模范围算法类似,该算法支持数值、符号、字母取模。首先截取长度为 prefixLength 的子串,在对子串中每一个字符的 ASCII 码求和,然后对求和值进行取模运算(sum%patternValue),就可以计算出子串的分片数
  • 优点:可以自主决定取模后数据的节点分布
  • 缺点:dataNode 划分节点是事先建好的,需要扩展时比较麻烦。
  • 配置示例

    <tableRule name="rule1">

    <rule>

    <columns>id</columns>

    <algorithm>func1</algorithm>

    </rule>

    </tableRule>

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

    <property name="mapFile">partition-pattern.txt</property>

    <property name="patternValue">256</property>

    <property name="prefixLength">5</property>

    </function>

  • 相关属性: [ul] mapFile:切分规则配置文件
  • patternValue:求模基数
  • prefixLength:截取的位数
  • partition-pattern.txt 示例:

    #range start-end,data node index

    1-32=1

    33-64=2

    65-128=3

    129-256=4

    0-0=5

注意:在mapFile配置的文件中,其1-32 表示的为 id%256后分布的范围

[/ul]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: