zoukankan      html  css  js  c++  java
  • Mycat 分片规则详解--范围取模分片

    • 实现方式:该算法先进行范围分片,计算出分片组,组内在取模
    • 优点:综合了范围分片和取模分片的优点,分片组内使用取模可以保证组内的数据分布比较均匀,分片组之间采用范围分片可以兼顾范围分片的特点,事先规划好分片的数量,数据扩容时按照分片组扩容,则原有分片组的数据不需要迁移,分片组内还可以避免热点数据问题。
    • 缺点:在数据范围时固定值(非递增值)时,存在不方便扩展的情况,例如将 dataNode Group size 从 2 扩展为 4 时,需要进行数据迁移才能完成
    • 配置示例

      <tableRule name="auto-sharding-rang-mod">

      <rule>

      <columns>id</columns>

      <algorithm>rang-mod</algorithm>

      </rule>

      </tableRule>

      <function name="rang-mod" class="io.mycat.route.function.PartitionByRangeMod">

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

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

      </function>

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

        #range start-end,dataNode group size

        #K=1000,M=10000

        0-100K=2

        100K1-200K=2

      注意:0-100K=2 表示在 0-100K范围中,有2个dataNode;如果需要进行扩展,则配置新的范围并增加 dataNode 组的数量来进行扩展,不需要针对历史数据进行迁移

  • 相关阅读:
    我的第一篇博客
    汇编语言——基础知识 Cop
    汇编语言第二章实验 Cop
    什么是<!DOCTYPE html>
    python第三方模块安装的几个方式
    linux下安装memcacheQ
    python正则表达式
    边框背景
    伪类
    属性选择符和样式
  • 原文地址:https://www.cnblogs.com/li3807/p/8461849.html
Copyright © 2011-2022 走看看