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 tableName0 db1 travelrecord0 db1 travelrecord2
group_id表示相同的组,该组中的表具有相同的存储分布
ER关系暂时不检查分区的目标是否相同,仅使用分片算法判断是否满足ER关系
