万里开源数据库使用中,请求大神,指点一下,有DBA在吗??在线等
- 目前GreatDB 所支持的自增字段数据必须是正整数或者 0/NULL,以及可以明确转化为这些值的字符串,GreatDB 暂不支持除这些类型之外的其他自增字段值。 例如: 0, NULL, "NULL", 123, "123" 等为合法的自增字段数据 -123, 345.678, "456.0" 等为非法的自增字段数据。
- 目前 GreatDB 不支持 auto_increment_offset 和 auto_increment_increment 两个自增参数。 GreatDB在插入含有自增字段的分片表时,自增字段默认从 1 开始计数,每次增量为 1 。
- 插入语句 当分区键和自增列不一致时,如果插入语句指定了自增值,GreatDB 不允许该值小于等于上一次插入(或由 GreatDB 分配)的自增值 当分区键和自增列一致时,如果插入语句所指定的自增值小于等于上一次插入(或由 GreatDB 分配)的自增值,该插入语句的执行结果由后端的分区数据库决定。 另外,当含有自增字段的分片表插入操作结果失败时,不论当前处于那种自增模式,GreatDB 都不会对已分配的自增值做回滚操作。
- 在多调度节点模型下不允许自增列指定值 对于自增列的新值分配,不同的调度节点将使用不同的步长,步长的分配由主调度节点进行统一分配。 在多调度节点模式下,如果没有关闭参数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语句是否执行成功。