"trans_shard">
"trans_online, trans_content, trans_tb "dataNode="transDN$0-9"rule="rule1"/>
trans_shard 提供的schema,对应于server.xml中的名字
下面会有多个需要分库的表,
"trans_online"dataNode="transDN$0-9"rule="rule1"/>
这里必须要把需要分库分表的内容写出来,当然,如果不分库表也是可以的
”tbxxx"dataNode="transDN0" ruleRequired=”false”/
rule.xml
分库分表规则配置,其中columns,dbRuleList,tbRuleList里面的列名要保持大写
首先先上一个整体配置
"rule1">
TRANS_ID
#set($start=$TRANS_ID.length() - 2)##
#set($end=$TRANS_ID.length() - 1)##
$stringUtil.substring($TRANS_ID,$start,$end)
#set($start=$TRANS_ID.length() - 2)##
$stringUtil.substring($TRANS_ID,$start)
def map = [:];
for (int i=0; i<10; i++) {
def list = [];
for (int j=0; j<10; j++) {
list.add(i+""+j);
}
map.put(i,list);
};
return map;
其中dbRuleList 为分库规则
#set($start=$TRANS_ID.length() - 2)##
#set($end=$TRANS_ID.length() - 1)##
$stringUtil.substring($TRANS_ID,$start,$end)
分库规则dbRuleList可以有多个dbRule,当第一个不满足时,可以用第二个,当然这个效率不好,如果有规则区分,尽量再写一个rule,
dbRule 最后的结果是表