云数据库 GAUSSDB-平台和客户端兼容性:auto_increment_cache
auto_increment_cache
参数说明:对自动增长列批量插入或导入触发自增时,预留自增缓存值的个数。预留自增值时刷新自增计数器为自增缓存值的最大值,缓存值使用完毕之前,自增计数器值不变,触发自增使用缓存的值。
- 预留的缓存值仅在语句内有效,若预留的自增缓存值没有全部被使用,后续插入语句基于自增计数器触发自增,会出现表中自动增长列的值不连续的情况。
- 并行导入或插入自动增长列触发自增时,每个并行线程预留的缓存值也只在其线程中使用,未完全使用完毕的话,也会出现表中自动增长列的值不连续的情况。
- 对已有数据的表添加自动增长列或修改某列为自动增长列时,已有数据触发自增,预留自增缓存值也受此参数影响。
- 此参数不影响本地临时表中的自动增长列。
- 仅在b_format_version='5.7'且b_format_dev_version='s2'时生效。
默认值:0
参数类型:整型
参数单位:无
取值范围:0 ~ INT_MAX
- 参数值为0时,自动预留自增缓存值。
- 第一次触发自增时,若已知即将插入自动增长列的行数,预留已知数量的值。
例如:“INSERT INTO table SELECT ...”和COPY FROM触发自增值无法获取即将插入的行数。ALTER TABLE命令表数据重写时,若触发自增,使用统计信息中的reltuples作为即将预留的行数。 “INSERT INTO table VALUES(...),(...),...”由于要分布到不同DN,在某些执行计划中,DN获取不到即将插入的行数。
- 若行数未知,每次预留2^n个值,例如,第一次自增预留1个值,第二次自增预留2个值,第三次预留4个值,第四次预留8个值,以此类推,若预留值个数超过65535,预留65535个值。
- 第一次触发自增时,若已知即将插入自动增长列的行数,预留已知数量的值。
- 参数值不为0时,预留缓存值的数量为参数值。
- 第一次触发自增时,若已知即将插入自动增长列的行数,预留已知数量的值。
- 若行数未知,每次预留auto_increment_cache数量的自增值。
默认值:0
设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。
设置建议:推荐使用默认值,若默认情况产生自增值不连续的情况,可以根据用户即将批量插入数据量调整参数值。参数值越大,批量插入性能越优,也更可能产生不连续的自增值。
- GaussDB学习_gaussdb教程_高斯数据库学习_华为云
- GaussDB考试_GaussDB数据库考试_高斯数据库考试_华为云
- GaussDB培训_GaussDB教程_高斯数据库培训-华为云
- GaussDB用法_GaussDB数据库使用方法_高斯数据库如何使用_华为云
- GaussDB数据库概念_openGauss_华为高斯数据库概念
- GaussDB数据库考试_GaussDB认证_高斯数据库考试_华为云
- GaussDB学习_gaussdb数据库_高斯数据库学习_华为云
- GaussDB使用技巧_高斯数据库下载_高斯数据库使用技巧_华为云
- GaussDB工具_gaussdb怎么读_高斯数据库工具_华为云
- GaussDB数据库安全_GaussDB收费吗_高斯数据库安全