TDSQL-C MySQL 版 Instant DDL 功能介绍

这篇说说TDSQL-C MySQL版通过Instant DDL算法实现超大表加列秒级变更,避免数据拷贝与磁盘I/O,适用于MySQL 5.7(≥2.1.3)及8.0(≥3.1.1)版本,并说明不同版本下的参数配置与操作语句。 版本与配置:5.7需设置innodb_alter_table_default_algorithm为instant,8.0部分版本通过ALGORITHM=INSTANT子句指定。 操作限制:仅支持。

相关产品
TDSQL-C MySQL 版 产品页,含版本规格、价格与购买入口。

一、适用场景

该功能主要针对在线业务的超大表 DDL 操作实现秒级变更。

二、功能介绍

通过 instant 算法来避免数据拷贝,进而实现大表快速修改列的功能,不拷贝数据,不占用磁盘空间和磁盘 I/O,业务高峰期可以实现秒级变更。

三、版本限制

·MySQL 5.7 内核小版本2.1.3及以上版本支持此功能。

·MySQL 8.0 内核小版本3.1.1及以上版本支持此功能。

四、使用说明

目前 Instant DDL 支持的操作为 ADD COLUMN。

五、Instant Add Column 操作说明

MySQL 5.7 内核小版本2.1.3及以上MySQL 8.0 内核小版本3.1.1至3.1.10MySQL 8.0 内核小版本3.1.12及以上

1. 登录 TDSQL-C MySQL 版控制台。

2. 在集群列表找到目标集群,在集群管理 > 参数设置页面,查询 innodb_alter_table_default_algorithm 参数的运行值是否为 instant。

·若该参数运行值为 instant,则加列操作执行语句如下:

ALTER TABLE t1 ADD COLUMN c INT, ADD COLUMN d INT DEFAULT 1000;

·若该参数运行值为 inplace,则加列操作执行语句如下:

ALTER TABLE t1 ADD COLUMN c INT, ADD COLUMN d INT DEFAULT 1000, ALGORITHM=INSTANT;

MySQL 8.0 内核小版本3.1.1至3.1.10,不支持 innodb_alter_table_default_algorithm 参数。
Alter Table 操作支持 algorithm = instant 子句,可通过该子句指定 instant 算法,加列操作执行语句如下:ALTER TABLE t1 ADD COLUMN c INT, ADD COLUMN d INT DEFAULT 1000, ALGORITHM=INSTANT;

1. 登录 TDSQL-C MySQL 版控制台。

2. 在集群列表找到目标集群,在集群管理 > 参数设置页面,查询 innodb_alter_table_default_algorithm 参数的运行值是否为 instant。

·若该参数运行值为 instant,则加列操作执行语句如下:

ALTER TABLE t1 ADD COLUMN c INT, ADD COLUMN d INT DEFAULT 1000;

·若该参数运行值为 inplace,则加列操作执行语句如下:

ALTER TABLE t1 ADD COLUMN c INT, ADD COLUMN d INT DEFAULT 1000, ALGORITHM=INSTANT;

六、Instant Add Column 限制

·一条语句中只有加列操作,不支持有其他的操作在同一条语句的情况。

·新增列将会放到最后,不支持改变列的顺序,如果数据库版本为8.0 3.1.15及以上,则支持在任意位置加列。

·不支持在行格式为 COMPRESSED 的表上快速加列。

·不支持在已经有全文索引的表上快速加列。

·不支持在临时表上快速加列。

赞 (0)
上一篇 4天前
下一篇 4天前