rule.xml
<tableRule name="my-mod-long">
<rule>
<columns>id</columns>
<algorithm>mod-long</algorithm>
</rule>
</tableRule>
<function name="my-mod-long" class="io.mycat.route.function.PartitionByMod">
<property name="count">3</property><!--求模取余的数-->
</function>
schema.xml
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">
<schema name="TESTDB" checkSQLschema="false" sqlMaxLimit="100">
<table name="data" primaryKey="id" dataNode="dn1,dn2,dn3" rule="my-mod-long"/>
</schema>
<dataNode name="dn1" dataHost="localhost1" database="db1" />
<dataNode name="dn2" dataHost="localhost2" database="db2" />
<dataNode name="dn3" dataHost="localhost3" database="db3" />
<dataHost name="localhost1" maxCon="1000" minCon="10" balance="2"
writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100">
<heartbeat>select user()</heartbeat>
<writeHost host="host1" url="192.168.1.199:3306" user="root" password="123456"/>
</dataHost>
<dataHost name="localhost2" maxCon="1000" minCon="10" balance="2"
writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100">
<heartbeat>select user()</heartbeat>
<writeHost host="host2" url="192.168.1.166:3306" user="root" password="123456"/>
</dataHost>
<dataHost name="localhost3" maxCon="1000" minCon="10" balance="2"
writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100">
<heartbeat>select user()</heartbeat>
<writeHost host="host3" url="192.168.1.176:3306" user="root" password="123456"/>
</dataHost>
</mycat:schema>
# 序列的使用:
序列的配置,在usr/local/mycat/conf/sequence_conf.properties文件中
还需要在server.xml文件中配置
<property name="sequenceHandlerType">0</property>
在SQL中使用next value for MYCATSEQ_GLOBAL表示序列增长
INSERT INTO data (id,title) VALUES (next value for MYCATSEQ_GLOBAL,@@hostname);
签名:这个人很懒,什么也没有留下!