Skip to content

Latest commit

 

History

History
77 lines (56 loc) · 4.33 KB

5.2_other_limit.md

File metadata and controls

77 lines (56 loc) · 4.33 KB

5.2 其他已知限制

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

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

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

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

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

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

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

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

  12. 未能正确支持 set sql_select_limit
    相关issue : actiontech/dble#331

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

  14. selece @@sql_mode 始终包含IGNORE_SPACE
    原因 : 后端权能标志位设置导致,参见4.2节内容。
    相关issue : actiontech/dble#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 : actiontech/dble#1111

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

  20. 不能正确支持mariadb-java-client版本1.5.0及以上版本的useBatchMultiSend优化 原因 :mariadb-java-client版本1.5.0及以上版本修改了prepare执行的时候的交互逻辑 相关issue :actiontech/dble#1244

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