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.xmlcustomer_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);执行成功后,分别去两个数据库查看,两个客户的订单已分到两个表里。
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
