Share join
ShareJoin 是一个简单的跨分片 Join,基于 HBT 的方式实现。
目前支持 2 个表的 join,原理就是解析 SQL 语句,拆分成单表的 SQL 语句执行,然后把各个节点的数据汇集。
配置
支持任意配置的 A,B 表如:
A,B 的 dataNode 相同
<tablename="A" dataNode="dn1,dn2,dn3"rule="auto-sharding-long" />
<tablename="B" dataNode="dn1,dn2,dn3"rule="auto-sharding-long" />
A,B 的 dataNode 不同
<tablename="A" dataNode="dn1,dn2 "rule="auto-sharding-long" />
<tablename="B" dataNode="dn1,dn2,dn3"rule="auto-sharding-long" />
或
<tablename="A" dataNode="dn1 "rule="auto-sharding-long" />
<tablename="B" dataNode=" dn2,dn3"rule="auto-sharding-long" />
代码测试
先把表 company 从全局表修改下配置
<tablename="company" primaryKey="ID"dataNode="dn1,dn2,dn3" rule="mod-long" />
重新插入数据
create table company(id int not null primary key,name varchar(100));
mysql> deletefrom company;
Query OK, 9 rowsaffected (0.19 sec)