Mycat 分片规则详解--范围分片

  • 实现方式:切分规则根据文件(autopartition-long.txt)配置的范围来进行切片,制定基准列的取值范围,然后把这一范围的所有数据都放到一个DN上面
  • 优点:适用于整体数量可知或总数量为固定值的情况
  • 缺点:dataNode 划分节点是事先建好的,需要扩展时比较麻烦。潜在的问题,如果在短时间发生海量的顺序插入操作,而每一个dataNode(分库)设定的数量比较高(比如说一个dataNode设定的放1000W条数据),那么在这个时候,会出现某一个dataNode(分库)IO压力非常高,而其他几个dataNode(分库)完全没有IO操作,就会出现类似于DB中常见的热块/热盘的现象
  • 配置示例

    <tableRule name="auto-sharding-long">

    <rule>

    <columns>user_id</columns>

    <algorithm>rang-long</algorithm>

    </rule>

    </tableRule>

    <function name="rang-long" class="io.mycat.route.function.AutoPartitionByLong">

    <property name="mapFile">autopartition-long.txt</property>

    <property name="defaultNode">0</property>

    </function>

  • 相关属性:
    • mapFile:切分规则配置文件
    • defaultNode:默认节点,小于0表示不设置默认节点,大于等于0表示设置默认节点,如果超出配置的范围,则使用默认节点
    • autopartition-long.txt 示例:

      #range start-end,dataNode index

      #K=1000,M=10000

      0-100K=0

      100K1-200K=1

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