阅读(1258) (16)

Mycat2 使用限制

2021-09-08 10:15:11 更新

网络协议

  • 一般来说仅内网使用,没有实现加密通信协议,连通外网有安全问题
  • 没有后端数据库之间的数据同步服务
  • 目标是兼容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中的逻辑视图
    • 不支持存储过程(改代码)
    • 不支持游标
    • 不支持触发器