mycat的所有配置文件在mycat/conf目录下,主要包括schema.xml、server.xml、rule.xml等配置文件。
rule.xml中定义了对表进行拆分所涉及到的规则。我们可以对表使用不同的分片算法,或对表使用相同的算法但不同的参数。该文件中主要有tableRule和function 两个标签。
1. tableRule标签
该标签定义表规则。在rule.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属性,连接表规则和具体路由算法。当然,多个表规则可以连接到
同一个路由算法。 
rule.xml定义的表规则与schema.xml中table标签的rule属性相对应,逻辑表通过该规则进行分片。

2.function标签
该标签定义tableRule标签定义表规则的所用的算法,例如:

<function name="hash-int"
 class="io.mycat.route.function.PartitionByFileMap">
 <property name="mapFile">partition-hash-int.txt</property>
 </function>
  • 1.
  • 2.
  • 3.
  • 4.


其中,name指定算法的名字,这与tableRule标签中name属性值相对应。class指定路由算法的具体类名字。property为具体算法需要用到的一些属性。