5.2 其他已知限制

  1. 显式配置的父子表,在子表插入数据时,不能多值插入
    原因 : 子表插入数据时,如有parentkey不是父表的拆分列。需要去对应父表的拆分结点中反向查询路由规则,如果此时是多值插入,就会变成多值反查,查询功能较难完成,即使完成,性能也会很差。
    相关issue : https://github.com/actiontech/dble/issues/12

  2. 不建议使用JDBC的rewriteBatchedStatements=true
    原因 :
    insert : 多条简单insert拼接成一条长的insert.. values(),(),一个com_query包 ,对于dble来说,可能引发分布式事务,降低性能和数据一致性。

  3. 使用JDBC的useServerPrepStmts=true会降低性能
    原因 : dble是将前端的Binary Protocol 转为Text Protocol,收到结果集之后再反向转回协议,所以需要额外的工作,降低了性能。

  4. lock/unlock 实现不完整
    相关issue : https://github.com/actiontech/dble/issues/38

  5. 不支持在schema.xml里配置复合主键(3.20.07.0移除此配置)
    原因 : schema.xml里的主键作用为主键路由和全局序列,这两者暂不支持多主键。
    相关issue : https://github.com/actiontech/dble/issues/70

  6. 不保证主键唯一性 由于dble不要求配置在table中的主键在创建表格时一定为主键,并且由于dble后端分布式存储的方式, dble不对于主键做唯一性检查,并且允许用户对于非分片列的主键字段进行任意更新

  7. 并发更新多行数据/全局表数据可能导致死锁超时
    原因 : 并发情况下,分布式下发sql可能乱序。
    相关issue : https://github.com/actiontech/dble/issues/85

  8. 防火墙导致无响应
    原因 : 防火墙可能drop包,java层面的tcp_keeplive无法指定时间。
    相关issue : https://github.com/actiontech/dble/issues/87

  9. 方差/标准差精度问题
    原因 : 方差计算方式导致
    相关issue : https://github.com/actiontech/dble/issues/100

  10. order by lock in share mode/for update, lock clause is ignored
    原因 : 无法支持。
    相关issue : https://github.com/actiontech/dble/issues/127

  11. 不支持 _charset_name ‘string’ _charset_name+b'val'
    相关issue : https://github.com/actiontech/dble/issues/262
    相关issue : https://github.com/actiontech/dble/issues/267

  12. 未能正确支持 set sql_select_limit
    相关issue : https://github.com/actiontech/dble/issues/331

  13. 日期拆分算法中,sEndDate如果不配置,default node就无用
    原因 : 算法设计问题。
    相关issue : https://github.com/actiontech/dble/issues/357

  14. selece @@sql_mode 始终包含IGNORE_SPACE
    原因 : 后端权能标志位设置导致,参见4.2节内容。
    相关issue : https://github.com/actiontech/dble/issues/364

  15. replace ... into
    由于replace的语义为如果存在则替换,如果不存在则新增,所以在使用表格自增主键的时候 如果对于自增表格使用replace且ID不存在,那么就会插入一条指定ID的数据,并不会自动生成ID

  16. kill 语句杀自身session,直接返回ok,不会有任何实质性操作

  17. 由于2.19.01版本在rule/schema/server.xml中加入了version字段造成的BUG,导致在2.19.01使用zk集群进行同步化操作的时候要求version字段不能为空或者不填,此问题在后续版本会进行修复

  18. 若mysql节点上设置了set global local_infile = 0,dble load data指令执行报错
    原因 : dble会将load data指令转换为load data local infile ...指令下发至各个后端mysql,所以各个节点local_infile参数需要开启。
    相关issue : https://github.com/actiontech/dble/issues/1111

  19. 不能正确支持 set @@sql_auto_is_null=on; 原因 : set @@sql_auto_is_null=on 的语义是用新生成的自增序列取代null,在dble层不做实现。
    相关issue : https://github.com/actiontech/dble/issues/978

  20. 复杂查询会透传难以理解的报错,建议结合explain语句分析 原因 :需要枚举所有错误来做替换.成本高,收益低 相关issue :https://github.com/actiontech/dble/issues/1449

  21. 开启 enableCursor 选项后,在分库分表场景下,所有的 prepareStatement 的 prepare 阶段均需要向 mysql 执行特殊语句,用来获取结果集的列数并返回给前端,这个执行会损失一部分性能(即使客户端没有开启游标)。

  22. 开启XA功能后,不支持执行含有隐式提交的sql

  23. select中的group by条件为true或false时,结果集不固定
    原因:group by条件为true或false时,mysql的结果集排序规则受存储引擎的影响。InnoDB情况下,优先按照PRIMARY KEY进行排序,没有PRIMARY KEY的前提下,按照INSERT顺序排序。在dble层面目前无法感知INSERT的顺序问题,所以无法做到和mysql行为一致
    相关issue : https://github.com/actiontech/dble/issues/3177

results matching ""

    No results matching ""