# 《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
  • 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
  • name 指定算法的名字。
  • class 制定路由算法具体的类名字。
  • property 为具体算法需要用到的一些属性。