• 让天下没有难学的技术
    多数学员都来自推荐,这就是口碑的力量

Mycat分库

一、 分库
1、选择分库表

选择不会出现关联查询的表分到别的库里。

分离出来的表为:客户表

建表语句:

#客户表  rows:20万

CREATE TABLE customer(

id INT AUTO_INCREMENT,

NAME VARCHAR(200),

PRIMARY KEY(id)

);

————————-

#订单表   rows:600万

CREATE TABLE orders(

id INT AUTO_INCREMENT,

order_type INT,

customer_id INT,

amount DECIMAL(10,2),

PRIMARY KEY(id)

);

#订单详细表     rows:600万

CREATE TABLE orders_detail(

id INT AUTO_INCREMENT,

detail VARCHAR(2000),

order_id INT,

PRIMARY KEY(id)

);

#订单状态字典表   rows:20

CREATE TABLE dict_order_type(

id INT AUTO_INCREMENT,

order_type VARCHAR(200),

PRIMARY KEY(id)

);

select o.*,od.detail,d.order_type

from orders  o

inner join orders_detail  od on o.id =od.order_id

inner join dict_order_type d on o.order_type=d.id

where o.customer_id=xxxx

Java培训Mycat分库

2、配置文件修改

修改配置文件schema.xml
<mycat:schema xmlns:mycat=”http://io.mycat/”>

<schema name=”TESTDB” checkSQLschema=”false” sqlMaxLimit=”100″ dataNode=”dn1″>

<table name=”customer” dataNode=”dn2″ ></table>

</schema>

<dataNode name=”dn1″ dataHost=”host1″ database=”atguigu_mc” />

<dataNode name=”dn2″ dataHost=”host2″ database=”atguigu_sm” />

<dataHost name=”host1″ maxCon=”1000″ minCon=”10″ balance=”0″

writeType=”0″ dbType=”mysql” dbDriver=”native” switchType=”1″  slaveThreshold=”100″>

<heartbeat>select user()</heartbeat>

<writeHost host=”hostm1″ url=”192.168.67.1:3306″ user=”root”

password=”123123″>

</writeHost>

</dataHost>

<dataHost name=”host2″ maxCon=”1000″ minCon=”10″ balance=”0″

writeType=”0″ dbType=”mysql” dbDriver=”native” switchType=”1″  slaveThreshold=”100″>

<heartbeat>select user()</heartbeat>

<writeHost host=”hostm2″ url=”192.168.67.145:3306″ user=”root”

password=”123123″>

</writeHost>

</dataHost>

</mycat:schema>

Java培训Mycat分库

3、重启Mycat

重启Mycat,让新配置生效

Java培训Mycat分库

4、验证

连接Mycat执行4个表的建表语句
执行成功后,分别去两个数据库查看,客户表在一个库,订单相关3张表在另一个库

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注