狮子女侠 2020-08-11 11:01 采纳率: 0%
浏览 106

GreatDB数据库分片表自增值有哪些使用限制?

万里开源数据库使用中,请求大神,指点一下,有DBA在吗??在线等

  • 写回答

1条回答 默认 最新

  • zhizu2030 2020-08-12 15:48
    关注
    1. 目前GreatDB 所支持的自增字段数据必须是正整数或者 0/NULL,以及可以明确转化为这些值的字符串,GreatDB 暂不支持除这些类型之外的其他自增字段值。 例如: 0, NULL, "NULL", 123, "123" 等为合法的自增字段数据 -123, 345.678, "456.0" 等为非法的自增字段数据。
    2. 目前 GreatDB 不支持 auto_increment_offset 和 auto_increment_increment 两个自增参数。 GreatDB在插入含有自增字段的分片表时,自增字段默认从 1 开始计数,每次增量为 1 。
    3. 插入语句 当分区键和自增列不一致时,如果插入语句指定了自增值,GreatDB 不允许该值小于等于上一次插入(或由 GreatDB 分配)的自增值 当分区键和自增列一致时,如果插入语句所指定的自增值小于等于上一次插入(或由 GreatDB 分配)的自增值,该插入语句的执行结果由后端的分区数据库决定。 另外,当含有自增字段的分片表插入操作结果失败时,不论当前处于那种自增模式,GreatDB 都不会对已分配的自增值做回滚操作。
    4. 在多调度节点模型下不允许自增列指定值 对于自增列的新值分配,不同的调度节点将使用不同的步长,步长的分配由主调度节点进行统一分配。 在多调度节点模式下,如果没有关闭参数check-auto-increment- value或开启参数 record-auto-increment-delete-value将只允许插入0,即让GreatDB进行自增值的分配而不允许客户端指定自增值。 为了进行数据导入:

    关闭check-auto-increment-value 来关闭这个检查。

    参数值为0表示关闭,1表示开启,1为默认值 关闭该参数后,关闭之后,可能会导致没有给定自增值的insert 语句应为duplicate key错误插入失败,这时候DBA可以使用命令 DBSCALE SHOW AUTO_INCREMENT OFFSET FOR table_name; 和 DBSCALE DYNAMIC SET table_name AUTO_INCREMENT OFFSET TO auto_increment_value;对dbscale的自增偏移量进行查看调整,使之足够大以跳过可能的插入冲突区。
    开启record-auto-increment-delete-value 对自增表记录当前用户删除自增值记录功能。 参数值为0表示关闭,1表示开启,0为默认值,该选项可以动态配置。
    在多调度节点模式下,如果不开启这个功能,对自增表的插入是不能指定自增值的 在开启这个功能后,GreatDB会记录当前用户删除过哪些自增值,然后用户可以插入这些自增值。
    限制1:如果分区表的分区列不是自增列,GreatDB不会记录删除的自增值。
    限制2: delete语句只有自增列的等值条件,且该值为常量时,才会进行记录,并且不管GreatDB语句是否执行成功或是否真的有删除数据行,都会进行记录。
    限制3: 每个记录的值只会被使用一次,不管使用过程中对应的insert语句是否执行成功。

    评论

报告相同问题?

悬赏问题

  • ¥15 有偿求苍穹外卖环境配置
  • ¥15 代码在keil5里变成了这样怎么办啊,文件图像也变了,
  • ¥20 Ue4.26打包win64bit报错,如何解决?(语言-c++)
  • ¥15 clousx6整点报时指令怎么写
  • ¥30 远程帮我安装软件及库文件
  • ¥15 关于#自动化#的问题:如何通过电脑控制多相机同步拍照或摄影(相机或者摄影模组数量大于60),并将所有采集的照片或视频以一定编码规则存放至规定电脑文件夹内
  • ¥20 深信服vpn-2050这台设备如何配置才能成功联网?
  • ¥15 Arduino的wifi连接,如何关闭低功耗模式?
  • ¥15 Android studio 无法定位adb是什么问题?
  • ¥15 C#连接不上服务器,