CREATE TABLE db1.```travelrecord``` (
`id
bigint NOT NULL AUTO_INCREMENT,<br />
user_id
varchar(100) DEFAULT NULL,<br />
traveldate
date DEFAULT NULL,<br />
fee
decimal(10,0) DEFAULT NULL,<br />
days
int DEFAULT NULL,<br />
blob
longblob,<br />
PRIMARY KEY (id
),<br />
KEY id
(id
)<br />
) ENGINE=InnoDB DEFAULT CHARSET=utf8 dbpartition by mod_hash
(id
) tbpartition by mod_hash
(id
)tbpartitions 2 dbpartitions 2
;`
CREATE TABLE db1.```travelrecord2``` (
`id
bigint NOT NULL AUTO_INCREMENT,<br />
user_id
varchar(100) DEFAULT NULL,<br />
traveldate
date DEFAULT NULL,<br />
fee
decimal(10,0) DEFAULT NULL,<br />
days
int DEFAULT NULL,<br />
blob
longblob,<br />
PRIMARY KEY (id
),<br />
KEY id
(id
)<br />
) ENGINE=InnoDB DEFAULT CHARSET=utf8 dbpartition by mod_hash
(user_id
) tbpartition by mod_hash
(user_id
) `tbpartitions 2 dbpartitions 2;
上述两表具有相同的分片算法,但是分片字段不相同
mycat2在涉及这两个表的join 分片字段等价关系的时候可以完成join的下推
mycat2无需指定ER表,是自动识别的,具体看分片算法的接口
查看配置的表是否具有ER关系,使用
/*+ mycat:showErGroup{}*/
查看
结果groupId schemaName tableName
0 db1 travelrecord
0 db1 travelrecord2
group_id表示相同的组,该组中的表具有相同的存储分布
ER关系暂时不检查分区的目标是否相同,仅使用分片算法判断是否满足ER关系