Mycat2 ER关系

2021-09-09 14:33 更新
  1. CREATE TABLE db1. `travelrecord`(
  2.  `id` bigint NOT NULL AUTO_INCREMENT,
  3.  `user_id` varchar(100) DEFAULT NULL,
  4.  `traveldate` date DEFAULT NULL,
  5.  `fee` decimal(10,0) DEFAULT NULL,
  6.  `days` int DEFAULT NULL,
  7.  `blob` longblob,
  8.  PRIMARY KEY (`id`),
  9.  KEY `id` (`id`)
  10. ) ENGINE=InnoDB  DEFAULT CHARSET=utf8 dbpartition by mod_hash(id) tbpartition by mod_hash(id) tbpartitions 2 dbpartitions 2;
  11. CREATE TABLE db1.`travelrecord2` (
  12.  `id` bigint NOT NULL AUTO_INCREMENT,
  13.  `user_id` varchar(100) DEFAULT NULL,
  14.  `traveldate` date DEFAULT NULL,
  15.  `fee` decimal(10,0) DEFAULT NULL,
  16.  `days` int DEFAULT NULL,
  17.  `blob` longblob,
  18.  PRIMARY KEY (`id`),
  19.  KEY `id` (`id`)
  20. ) 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{}*/查看

结果

  1. groupId schemaName tableName
  2. 0 db1 travelrecord
  3. 0 db1 travelrecord2

group_id表示相同的组,该组中的表具有相同的存储分布

以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号