阅读(3015)
赞(12)
Mycat2 ER关系
2021-09-08 13:49:37 更新
CREATE TABLE db1. `travelrecord`(
`id` bigint NOT NULL AUTO_INCREMENT,
`user_id` varchar(100) DEFAULT NULL,
`traveldate` date DEFAULT NULL,
`fee` decimal(10,0) DEFAULT NULL,
`days` int DEFAULT NULL,
`blob` longblob,
PRIMARY KEY (`id`),
KEY `id` (`id`)
) 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,
`user_id` varchar(100) DEFAULT NULL,
`traveldate` date DEFAULT NULL,
`fee` decimal(10,0) DEFAULT NULL,
`days` int DEFAULT NULL,
`blob` longblob,
PRIMARY KEY (`id`),
KEY `id` (`id`)
) 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
表示相同的组,该组中的表具有相同的存储分布