秒级加字段

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

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

前提条件

此功能仅支持PolarDB-X 2.0版本的实例,并且要求实例版本为5.4.13-16504348及以上。

  • 对于DN版本为5.7的实例,该功能默认关闭,使用时需要显式开启,开启方法请参见使用方法

  • 对于DN版本为8.0的实例,该功能自动开启。

说明

DN版本的信息请登录PolarDB分布式版控制台,在实例的配置与管理 > 基本信息界面,配置信息区块查看兼容性获得。

使用限制

  • 秒级加字段不支持新增主键字段(列)。

  • 具有ROW_FORMAT = COMPRESSED属性的表不支持秒级加字段。

    说明

    执行SHOW CREATE TABLE语句,可查看表是否具有ROW_FORMAT = COMPRESSED属性。

  • 具有全文索引的表不支持秒级加字段。

  • 具有物理分区的表不支持秒级加字段。

    说明

    执行SHOW CREATE TABLE语句,可查看表是否具有LOCAL PARTITION BY子句。

  • 仅支持在所有列的最后执行INSTANT ADD COLUMN(仅在DN版本为5.7的实例中有此限制)。

  • 同一条ALTER TABLE语句中只能包含增加列操作,包含任何其它操作时则不支持。

使用方法

参数说明(DN版本为5.7)

参数名称

级别

参数说明

loose_innodb_support_instant_add_column

Global

秒级加字段功能的开关:

  • ON:开启秒级加字段功能;

  • OFF:关闭秒级加字段功能(默认值)。

设置方法:

登录PolarDB分布式版控制台,在实例的配置与管理 > 参数设置 > 存储层界面,设置loose_innodb_support_instant_add_column为on。

语句说明

当ALTER TABLE将算法指定为INSTANT时,能够为语句启用秒级加字段的功能,其它算法,例如INPLACE或COPY,则不启用。

  • 对于DN版本为8.0的实例,不指定ALGORITHM=INSTANT默认使用秒级加字段功能,示例:

    ALTER TABLE test ADD COLUMN col1 int;
  • 指定ALGORITHM=INSTANT以强制使用秒级加字段功能,示例:

    ALTER TABLE test ADD COLUMN col2 int, ALGORITHM=INSTANT;
  • 指定ALGORITHM=INPLACE或ALGORITHM=COPY,PolarDB-X不启用秒级加字段功能,示例:

    ALTER TABLE test ADD COLUMN col3 int, ALGORITHM=INPLACE;
    ALTER TABLE test ADD COLUMN col4 int, ALGORITHM=COPY;