mycat单库分表

mycat 分表原理,是在原有分片的基础上把原来分片的路由改写为改写sql:

     例如对于取模,分为3个片的配置:

 

      分库模式下是:insert into table(xxx)values(1,name);

       router:{

           node1:insert into table(xxx)values(1,name) ,datanode1,

           node2:insert into table(xxx)values(2,name) ,datanode2,

           node3:insert into table(xxx)values(3,name) ,datanode3,

       },

        

        分表模式是: insert into table(xxx)values(1,name);

 

       router:{

           node1:insert into table1(xxx)values(1,name) ,datanode1,

           node2:insert into table2(xxx)values(2,name) ,datanode1,

           node3:insert into table3(xxx)values(3,name) ,datanode1,

       },

 

 

 

由于1.6已经是release,现有的1.6分支当作1.6.5开发,导致无法修改,因此使用分表只能用替换class或者jar的方式:

 

替换class(可以用于生产基于1.6release):classes\io\mycat\route\function, 附件:http://songwie.com/attached/mycat/AbstractPartitionAlgorithm.class

   

替换jar:lib目录下mycat-server:(基于1.6.5开发板)http://songwie.com/attached/mycat/Mycat-server-1.6.5-DEV.jar

 

----------------------------------------------------------

 

配置为:

scheml:

 

<schema name="TESTDB" checkSQLschema="false" sqlMaxLimit="100"> 
 <table name="travelrecord" subTables="travelrecord$1-3" dataNode="dn1" rule="mod-long" /> 
</schema> 
<dataNode name="dn1" dataHost="localhost1" database="mycat" /> 
<dataHost name="localhost1" maxCon="1000" minCon="10" balance="0"  writeType="0" dbType="mysql" 
 dbDriver="native" switchType="1" slaveThreshold="100"> 
 <heartbeat>select user()</heartbeat> <writeHost host="hostS1" url="localhost:3306" user="root" password="123456" /> 
</dataHost>

 

rule配置:

 

<tableRule name="mod-long"> <rule> <columns>id</columns> 
 <algorithm>mod-long</algorithm> </rule> </tableRule> 
 <function name="mod-long" class="io.mycat.route.function.PartitionByMod">
             <property name="count">3</property>
       </function>

 

 

注意:目前只做到单库分表,多库分表还不支持,可能会在1.6.5支持,

分表模式下只能配置一个dataNode,同时添加

subTables="travelrecord$1-3" 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值