自定义切分文件
[root@mycat mycat]# cat conf/customer-hash-int.txt
101=0
102=0
103=0
104=1
105=1
106=1
Rule.xml配置新增切分规则,修改两处
<!-- 自定义切分规则 -->
<tableRule name="sharding-customer">
<rule>
<columns>sharding_id</columns>
<algorithm>customer-hash-int</algorithm>
</rule>
</tableRule>
<function name="customer-hash-int" class="io.mycat.route.function.PartitionByFileMap"> <property name="mapFile">customer-hash-int.txt</property> </function>
Schema.xml配置
配置好以后通过9066管理端口重新加载配置
mysql> reload @@config_all;
Query OK, 1 row affected (0.49 sec)
Reload config success
mysql>
通过mycat建库t_customer
use chinasoft;
create table t_customer(
id int primary key,
username varchar(200) not null,
sharding_id int not null
);
插入数据
use chinasoft;
select * from t_customer;
insert into t_customer(id,username,sharding_id) values(1,"tom",101);
insert into t_customer(id,username,sharding_id) values(2,"jack",102);
insert into t_customer(id,username,sharding_id) values(3,"smith",105);
insert into t_customer(id,username,sharding_id) values(4,"lily",102);
insert into t_customer(id,username,sharding_id) values(5,"lucy",103);
insert into t_customer(id,username,sharding_id) values(6,"hanmeimei",104);
通过pxc可以查询到所有的数据,在每个pxc集群中只能看到部分数据
Mycat可以聚合查询两个库的数据展示
Pxc-cluster数据