本文介绍了什么是秒级加字段功能及如何使用。

传统方法给表中增加列时,存储节点上需要重建所有物理分片数据,会占用大量系统资源。PolarDB-X新增的秒级加字段(Instant Add Column)功能,在加列操作时只需变更表定义信息,无需修改已有数据,帮助您快速给任意大小的表增加列。

前提条件

  • 此功能仅支持PolarDB-X 2.0版本的实例,并且要求实例版本为5.4.13-16504348及以上;
  • 该功能默认关闭,使用时需要显式开启。

使用限制

  • 不支持新增主键列;
  • 不支持对具有ROW_FORMAT = COMPRESSED属性的表使用该功能;
    说明 执行SHOW CREATE TABLE语句,可查看表是否具有ROW_FORMAT = COMPRESSED属性。
  • 不支持对具有全文索引的表使用该功能;
  • 同一条ALTER TABLE语句中只能包含增加列操作,包含任何其它操作时则不支持。

开启方法

执行以下语句,开启秒级加字段功能:

SET enable_set_global=TRUE;
SET global support_instant_add_column=ON;

参数说明:

参数名称 级别 参数说明
support_instant_add_column Global 秒级加字段功能的开关:
  • ON:开启秒级加字段功能;
  • OFF:关闭秒级加字段功能(默认值)。

使用方法

ALTER TABLE语句为下列情况时,该语句使用了秒级加字段功能:
  • 未指定算法,示例如下:
    ALTER TABLE test ADD COLUMN col2 int;
  • 将算法指定为DEFAULT,示例如下:
    ALTER TABLE test ADD COLUMN col3 int, ALGORITHM=DEFAULT;
  • 将算法指定为INSTANT,示例如下:
    ALTER TABLE test ADD COLUMN col1 int, ALGORITHM=INSTANT;
说明
如果指定了其它算法,例如INPLACE或COPY,则不能使用该功能,PolarDB-X将采用普通方式执行增加列操作。示例如下:
ALTER TABLE test ADD COLUMN col4 int, ALGORITHM=INPLACE;
ALTER TABLE test ADD COLUMN col5 int, ALGORITHM=COPY;