正文  软件开发 > html5 >

mycat分库规则auto-sharding-long

mycat分库规则auto-sharding-long1.定义规则rule.xml<tableRule name="auto-sharding-long-userid"><rule><column...

mycat分库规则auto-sharding-long


1.定义规则rule.xml

  1. <tableRule name="auto-sharding-long-userid">
  2. <rule>
  3. <columns>userid</columns>
  4. <algorithm>rang-long-userid</algorithm>
  5. </rule>
  6. </tableRule>

  7. <function name="rang-long-userid"
  8. class="io.mycat.route.function.AutoPartitionByLong">
  9. <property name="mapFile">autopartition-long-userid.txt</property>
  10. </function>
[root@host01 conf]# more autopartition-long-userid.txt
# range start-end ,data node index
# K=1000,M=10000.
0-1000=0
1001-2000=1
2001-3000=2
3001-4000=3
4001-5000=4
5001-6000=5

2.schema.xml配置文件

  1. <?xml version="1.0"?>
  2. <!DOCTYPE mycat:schema SYSTEM "schema.dtd">
  3. <mycat:schema xmlns:mycat="http://io.mycat/">

  4. <schema name="logdb" checkSQLschema="false" sqlMaxLimit="100">
  5. <table name="tb_log_t" primaryKey="ID" autoIncrement="true" dataNode="dn1,dn2,dn3,dn4,dn5,dn6" rule="mod-long" />
  6. <table name="tb_user_t" dataNode="dn1,dn2,dn3,dn4,dn5,dn6" rule="sharding-by-intfile-provcode" />
  7. <table name="tb_user_detail_t" dataNode="dn1,dn2,dn3,dn4,dn5,dn6" rule="auto-sharding-long-userid" />
  8. </schema>
  9. <schema name="coss03" checkSQLschema="false" sqlMaxLimit="100" dataNode="dnoss03"/>
  10. <dataNode name="dn1" dataHost="localhost1" database="log01" />
  11. <dataNode name="dn2" dataHost="localhost1" database="log02" />
  12. <dataNode name="dn3" dataHost="localhost1" database="log03" />
  13. <dataNode name="dn4" dataHost="localhost1" database="log04" />
  14. <dataNode name="dn5" dataHost="localhost1" database="log05" />
  15. <dataNode name="dn6" dataHost="localhost1" database="log06" />
  16. <dataNode name="dnoss03" dataHost="localhost1" database="oss03" />
  17. <dataHost name="localhost1" maxCon="1000" minCon="10" balance="0"
  18. writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100">
  19. <heartbeat>select user()</heartbeat>
  20. <!-- can have multi write hosts -->
  21. <writeHost host="hostM1" url="192.168.56.141:3306" user="root"
  22. password="mysql">
  23. <!-- can have multi read hosts -->
  24. <readHost host="hostS2" url="192.168.56.142:3306" user="root" password="mysql" />
  25. </writeHost>
  26. </dataHost>
  27. </mycat:schema>

3.建表语句
CREATE TABLE tb_user_detail_t (
userid bigint not null primary key,
name varchar(64) DEFAULT NULL,
createtime datetime DEFAULT CURRENT_TIMESTAMP,
moditytime datetime DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8;


写入数据
insert into tb_user_detail_t(userid,name) values(999,‘name999‘);
insert into tb_user_detail_t(userid,name) values(1999,‘name999‘);
insert into tb_user_detail_t(userid,name) values(2999,‘name999‘);
insert into tb_user_detail_t(userid,name) values(3999,‘name999‘);
insert into tb_user_detail_t(userid,name) values(4999,‘name999‘);
insert into tb_user_detail_t(userid,name) values(5999,‘name999‘);


-- The End --

http://www.bkjia.com/HTML5/1222880.htmlwww.bkjia.comtruehttp://www.bkjia.com/HTML5/1222880.htmlTechArticlemycat分库规则auto-sharding-long 1.定义规则rule.xml tableRule name="auto-sharding-long-userid" rule columnsuserid/columns algorithmrang-long-userid/algorithm /rule /tableRul...