MyCat分库分表实战
2020-04-27 本文已影响0人
我问你瓜保熟吗
在读写分离的基础上进行分库分表。
10.112.1.65和10.112.1.77分别有test.user
表。
-
分片规则采用
mod-long
,其他规则定义在rule.xml
里。插入的数据将会一次插入dn1和dn2. -
schema.xml
<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">
<!--逻辑数据库设置-->
<schema name="testDB" checkSQLschema="false" sqlMaxLimit="100">
<!--指定要切分的表和分表规则-->
<!--如果要同步多个表,重复下面的table标签多次即可-->
<table name='user' primaryKey='id' dataNode='dn1,dn2' rule="mod-long" />
</schema>
<!--逻辑节点与物理主机映射-->
<dataNode name="dn1" dataHost="dh1" database="test" />
<dataNode name="dn2" dataHost="dh2" database="test" />
<!--物理主机,依次往10.112.1.65和10.112.1.77写,依次从10.112.1.65、10.112.1.77、10.112.1.65读-->
<dataHost name="dh1" maxCon="1000" minCon="10" balance="3" writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100">
<!--检查数据库是否正常-->
<heartbeat>select user()</heartbeat>
<writeHost host="10.112.1.65" url="10.112.1.65:3306" user="root" password="root">
<readHost host="10.112.1.65" url="10.112.1.65:3306" user="root" password="root" />
</writeHost>
</dataHost>
<dataHost name="dh2" maxCon="1000" minCon="10" balance="3" writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100">
<heartbeat>select user()</heartbeat>
<writeHost host="10.112.1.77" url="10.112.1.77:3306" user="root" password="root">
<readHost host="10.112.1.77" url="10.112.1.77:3306" user="root" password="root" />
<readHost host="10.112.1.65" url="10.112.1.65:3306" user="root" password="root" />
</writeHost>
</dataHost>
</mycat:schema>