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 組的數量來進行擴展,不需要針對歷史數據進行遷移


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM