# 《Mycat核心技术》第04章:Mycat核心配置文件rule.xml说明
作者:冰河
星球:http://m6z.cn/6aeFbs (opens new window)
博客:https://binghe.gitcode.host (opens new window)
文章汇总:https://binghe.gitcode.host/md/all/all.html (opens new window)
星球项目地址:https://binghe.gitcode.host/md/zsxq/introduce.html (opens new window)
沉淀,成长,突破,帮助他人,成就自我。
- 本章难度:★★☆☆☆
- 本章重点:介绍Mycat核心配置文件schema.xml,理解schema.xml文件在Mycat中的作用,并能够在实际项目中灵活使用Mycat进行分库分表。
大家好,我是CurleyG~~
今天给大家介绍《Mycat核心技术》的第04章:给大家简单介绍下Mycat中的核心配置文件rule.xml,好了,开始今天的内容。
# rule.xml文件
rule.xml里面就定义了我们对表进行拆分所涉及到的规则定义。我们可以灵活的对表使用不同的分片算法,或者对表使用相同的算法但具体的参数不同。这个文件里面主要有tableRule和function这两个标签。在具体使用过程中可以按照需求添加tableRule和function。
# 1.tableRule标签
这个标签定义表规则。
定义的表规则,在schema.xml:
<tableRule name="rule1">
<rule>
<columns>id</columns>
<algorithm>func1</algorithm>
</rule>
</tableRule>
1
2
3
4
5
6
2
3
4
5
6
- name 属性指定唯一的名字,用于标识不同的表规则。内嵌的rule标签则指定对物理表中的哪一列进行拆分和使用什么路由算法。
- columns 内指定要拆分的列名字。algorithm 使用function标签中的name属性。连接表规则和具体路由算法。当然,多个表规则可以连接到同一个路由算法上。标签内使用。让逻辑表使用这个规则进行分片。
# 2.function标签
<function name="hash-int" class="org.opencloudb.route.function.PartitionByFileMap">
<property name="mapFile">partition-hash-int.txt</property>
</function>
1
2
3
2
3
- name 指定算法的名字。
- class 制定路由算法具体的类名字。
- property 为具体算法需要用到的一些属性。
