Mycat 分片规则详解--ASCII 取模范围分片
- 实现方式:该算法与取模范围算法类似,该算法支持数值、符号、字母取模。首先截取长度为 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>
-
相关属性:
- 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后分布的范围
本文版权归作者 李雪(博客地址:https://www.cnblogs.wiki)所有,欢迎转载和商用,请在文章页面明显位置给出原文链接并保留此段声明,否则保留追究法律责任的权利,其他事项,可留言咨询。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步