04mycat数据切分

04mycat数据切分

04mycat数据切分

04mycat数据切分

自定义切分文件

[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>

04mycat数据切分

<function name="customer-hash-int"
        class="io.mycat.route.function.PartitionByFileMap">
        <property name="mapFile">customer-hash-int.txt</property>
</function>

04mycat数据切分

Schema.xml配置

04mycat数据切分

配置好以后通过9066管理端口重新加载配置

mysql> reload @@config_all;

Query OK, 1 row affected (0.49 sec)

Reload config success

mysql>

04mycat数据切分

通过mycat建库t_customer

use chinasoft;

create table t_customer(

id int primary key,

username varchar(200) not null,

sharding_id int not null

);

04mycat数据切分

插入数据

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可以聚合查询两个库的数据展示

04mycat数据切分

Pxc-cluster数据

04mycat数据切分