Mycat2 使用限制
网络协议
- 一般来说仅内网使用,没有实现加密通信协议,连通外网有安全问题
- 没有后端数据库之间的数据同步服务
- 目标是兼容
MySQL7/8服务器,也一定程度兼容Mariadb,支持Mariadb客户端的批量插入特性 - 网络通信协议一定支持
native_password验证,其他验证方式会自动切换到验证插件 - 支持超过
16mb的报文 - 不支持压缩协议
- 不支持加密协议通信
事务特性
- 支持强一致性分布式事务
DDL语句
- 不支持修改拆分键
- 支持物理库的视图视为普通表来使用
- 仅普通表支持外键
DML语句
- DELETE语句
- 不支持涉及分布式运算的子查询。
- 不支持多表
delete。
- UPDATE语句
- 不支持涉及分布式运算的子查询。
- 不支持多表
update。
- SELECT语句
- 对于
for update语句会把sql中出现的表都加锁。 - 具体是行锁还是表锁要看
sql语句。 - 不支持
SELECT INTO OUTFILE。
- 对于
- SET语句
- 支持
SET SESSION级别的变量,但是不能被预处理语句引用变量,只有autocommit变量具有正确语义 - 不支持
SET GLOBAL级别的变量 - 不支持
SET USER级别的变量
- 支持
- SHOW语句
- 所有
SHOW语句都视为兼容性SQL进行处理,发往prototype节点处理,所以不具备分布式语义
- 所有
- 高级功能
- 不支持用户自定义数据类型(改代码), 自定义函数(改代码)
- 支持物理视图,但是不支持
Mycat中的逻辑视图 - 不支持存储过程(改代码)
- 不支持游标
- 不支持触发器