MyCat-规则

本文详细介绍了规则.xml配置文件中的分片规则,包括范围、取模、一致性哈希、枚举、应用指定的固定分片算法以及日期和自然月分片方法,帮助读者理解如何根据业务需求定制数据分片策略。
摘要由CSDN通过智能技术生成

规则

这篇记录的是分片规则,也就是rule.xml配置文件中的内容。也是初次学习,后面会慢慢补充的!

分片规则:


1.范围


       根据指定的字段及其配置的范围与数据节点的对应情况,来决定该数据属于哪一个分片。
       我们想要自己定义规则,只需要修改autopartition-long.txt文件。在文件中具体规定了指定字段值应该路由到哪个数据节点。


2.取模


       根据指定的字段值与节点数量进行求模运算,根据运算结果,来决定该数据属于哪一个分片。
        我们只需要修改fuction中的count节点数量


3.一致性hash


        一致性hash,相同的哈希因子计算值总是被划分到相同的分区表中,不会因为分布区节点的增加而改变原来数据的分区位置。
       此分片规则,支持指定字段值*不为数字*的情况。就算是后面增加了节点,也不会影响数据的存放地址,因为hash值是唯一的。


4.枚举


       通过在配置文件中配置可能的枚举值,指定数据分布到不同数据节点上,本规则适用于按照省份、性别、状态拆分数据(有限的可能)等。
       在function中主要定义了两个属性,一个是默认节点,默认节点的作用:枚举分片时,如果碰到不识别的枚举值,就让它路由到默认节点。还有一个是映射文件,配置的是枚举值对应的分片节点。


5.应用指定


       运行阶段由应用自主决定路由到哪个分片,直接根据子字符串必须是数字)计算分片号。
       在function中主要定义了四个属性

  •            startIndex:开始索引
  •            size:截取长度
  •            partitionCount:分片(节点)数量
  •            defaultPartition:默认分片

6.固定分片hash算法


       类似于十进制的求模算法,但是为二进制的操作
       特点:
    1.如果是求模,*连续的值*,分别分配到各个不同的分片;但此算法会将连续的值可能分配到相同的分片,降低事务处理的难度。
    2.可以均匀分配,也可以非均匀分配。
    3.分片字段必须为*数字类型*


7.字符串hash解析


       截取字符串中的指定位置的子字符串(指定字段值非数字),进行hash算法
    在function中的属性配置
    partitionLength:分片的长度0-512,513-1024
    partitionCount:分片数量
    hashSlice*:hash运算位,格式为strat:end  
            0在end中出现代表str.length()
            -1代表str.length()-1
            大于0代表数字本身 


8.按(天)日期分片


       配置表的dataNode的分片,必须和分片规则一致,例如2022-01-01到2022-12-31,每10天一个分片,一共需要37个分片。

9.按自然月分片

       和按天分片差不多的。

  • 18
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值