mysql mycat 分表_Mycat水平分表

1、选择水平分表订单表orders表已经有600万数据超过MySQL单表数据瓶颈,需要进行水平分表

鉴于订单表特性,无论是按照id、时间进行分表均不合适,应该保证每个人的订单在同一张表里。所以应该按照客户id(customer_id)进行分表,具体做法:按照客户id取模平均分配到两张表里。

Java培训Mycat水平分表

2、配置文件修改修改配置文件schema.xml

schema.dtd”>

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

select user()

password=”123123″>

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

select user()

password=”123123″>

修改配置文件rule.xml

customer_id

mod-long

……

2

Java培训Mycat水平分表

3、重启Mycat

先在另一个库里创建订单表,之后重启Mycat,让新配置生效

Java培训Mycat水平分表

4、 验证连接Mycat向订单表插入数据

注:表名后必须加上相关字段,告知Mycat,哪个字段是customer_id

INSERT INTO orders(id,order_type,customer_id,amount) values(1,101,100,100100);

INSERT INTO orders(id,order_type,customer_id,amount) VALUES(2,101,100,100300);

INSERT INTO orders(id,order_type,customer_id,amount) VALUES(3,101,101,120000);

INSERT INTO orders(id,order_type,customer_id,amount) VALUES(4,101,101,103000);

INSERT INTO orders(id,order_type,customer_id,amount) VALUES(5,102,101,100400);

INSERT INTO orders(id,order_type,customer_id,amount) VALUES(6,102,100,100020);执行成功后,分别去两个数据库查看,两个客户的订单已分到两个表里。


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部