Mycat2.0是否支持1.6版本中一个逻辑库映射多个物理库
2.0中如何配置一个逻辑库映射多个物理库,像1.6中使用/*!mycat:dataNode=xxx*/select * from t0; 指定访问某个节点数据
mycat2是通过每个逻辑表映射 数据源.物理库.物理表这个模型实现的
有一个类似的注释
/*+ MYCAT:TARGET(c0) */ select * from db1.travelrecord;
会直接把sql发到数据源或者集群,即使表没有配置,这个注释不会对sql补全逻辑表
一个新问题,我通过/*! mycat:createTable{...}*/创建一个分库分表后,想要修改表结构,比如新增一个字段 通过alter ...语句修改后发现逻辑表和物理表结构都已修改,但是select 新字段,提示字段不存在 通过/*! mycat:createTable{...}*/修改创建表语句并执行后,select可以查
经测试发现,alter后逻辑表和物理表机构都变了,但是select ... 不加where 分区字段,查出来内容还是之前的,加了where分区条件后就可以查变之后的了 而/! mycat:createTable{...}/(修改其中的创建表sql),逻辑表和物理表结构没变化,只是select ... 不加where 分区字段,查出的内容是修改后的,但加了where分区条件后查出的还是之前内容
自定义分片算法,自己修改配置的分片表,,以及不能通过sql分库分表语法(带dbpartition by mod_hash(id) tbpartition by mod_hash(id) tbpartitions 2 dbpartitions 2;)生成的分片表,暂时不支持alter的.你可以在mycat里alter,这样就可以把alter语句下发到mysql之后,重新执行/! mycat:createTable{...}/恢复自定义的分片表配置
通过/*! mycat:createTable{...}*/创建的分库表,执行drop table xxx,发现只删除了一个节点的表,要删除其他节点的表需要指定schema(drop table db2.xxx),全部执行一遍。有其他好的办法吗?
drop只删除原型库的 防止dba误操作,这个问题可能后面做一个注释来做删除操作.mycat的ddl功能只能用于开发时候,不能用于生产的,生产上操作表结构的操作叫dba用其他工具执行