rule.xml 里面就定義了我們對表進(jìn)行拆分所涉及到的規(guī)則定義。我們可以靈活的對表使用不同的分片算法,或者對表使用相同的算法但具體的參數(shù)不同。這個(gè)文件里面主要有 tableRule 和 function 這兩個(gè)標(biāo)簽。在具體使用過程中可以按照需求添加 tableRule 和 function。
1.tableRule 標(biāo)簽
這個(gè)標(biāo)簽定義表規(guī)則。
<tableRule name="rule1">
<rule>
<columns>id</columns>
<algorithm>func1</algorithm>
</rule>
</tableRule>
name 屬性指定唯一的名字,用于標(biāo)識(shí)不同的表規(guī)則
內(nèi)嵌的 rule 標(biāo)簽則指定對物理表中的哪一列進(jìn)行拆分和使用什么路由算法。
columns 內(nèi)指定要拆分的列名字。
algorithm 使用 function 標(biāo)簽中的 name 屬性。連接表規(guī)則和具體路由算法。當(dāng)然,多個(gè)表規(guī)則可以連接到同一個(gè)路由算法上。 table 標(biāo)簽內(nèi)使用。讓邏輯表使用這個(gè)規(guī)則進(jìn)行分片。
2.function 標(biāo)簽
<function name="hash-int" class="org.opencloudb.route.function.PartitionByFileMap">
<property name="mapFile">partition-hash-int.txt</property>
</function>
name 指定算法的名字。
class 制定路由算法具體的類名字。
property 為具體算法需要用到的一些屬性。
路由算法的配置可以查看算法章節(jié)。
本文摘抄于:mycat用戶指南