tencent cloud

文档反馈

秒级加列

最后更新时间:2024-11-27 11:20:06

    功能介绍

    快速加列功能是通过只修改数据字典的方法来实现大表快速加列,避免之前加列操作必须做的数据拷贝,从而大幅缩小大表加列所需的时间,减少对系统的影响。

    支持版本

    内核版本 MySQL 5.7 20190830 及以上
    内核版本 MySQL 8.0 20200630 及以上

    适用场景

    适用于需要对数据量大的表进行增加列操作的场景。

    性能数据

    通过对5GB数据量的表进行测试,增加一列操作从40秒降到1秒以内。

    使用说明

    使用秒级加列之前,需将参数 innodb_fast_ahi_cleanup_for_drop_table 的值设置为 ON。
    
    Instant Add Column 语法 Alter Table 新增 algorithm=instant 子句,加列操作可通过如下语句进行:
    ALTER TABLE t1 ADD COLUMN c INT, ADD COLUMN d INT DEFAULT 1000, ALGORITHM=INSTANT;
    新增参数 innodb_alter_table_default_algorithm,可以设置为 inplace、instant。 该参数默认为 inplace,可通过设置该参数来调整 Alter Table 的默认算法,如:
    SET @@global.innodb_alter_table_default_algorithm=instant;
    通过该参数指定了缺省算法后,在不指明算法的情况下,将使用默认算法来进行 Alter Table 操作。
    说明:
    参数 innodb_alter_table_default_algorithm 的设置仅适用于 MySQL 5.7版本;MySQL 8.0版本在内核小版本20230630之后的版本执行 Alter Table 时的默认算法为 instant,不支持设置此参数。

    Instant Add Column 限制

    一条语句中只有加列操作,不支持有其他的操作在同一条语句的情况。
    新增列将会放到最后,不支持改变列的顺序。
    不支持在行格式为 COMPRESSED 的表上快速加列。
    不支持在已经有全文索引的表上快速加列。
    不支持在临时表上快速加列。
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持