更新时间:2024-07-02 GMT+08:00

在线扩展varchar类型字段

功能介绍

当字段类型是varchar时,原生MySQL只支持不跨越256字节的在线扩展(online),对于跨越256字节的扩展只支持复制方式(copy),扩展时需要锁表且禁止对数据表进行写操作。华为云RDS for MySQL支持跨越256字节的扩展,支持对任何长度的varchar类型的字段进行在线扩展操作。

支持的RDS for MySQL版本

建议您使用最新小版本的实例在线扩展varchar类型字段。更多操作,详见升级内核小版本

表1 在线扩展varchar类型字段支持的版本

varchar类型字段长度

RDS for MySQL 5.6

RDS for MySQL 5.7

RDS for MySQL 8.0

长度小于256字节

不支持

支持

支持

长度跨越256字节长度

支持

支持

不支持

长度大于256字节

不支持

支持

支持

扩展分类

  • 长度小于256字节的varchar类型字段的在线扩展
    create table t1(a varchar(10));
    Query OK, 0 rows affected (0.03 sec)
    alter table t1 modify a varchar(100),ALGORITHM=INPLACE, LOCK=NONE;
    Query OK, 0 rows affected (0.06 sec)
    Records: 0  Duplicates: 0  Warning: 0
  • 长度跨越256字节长度的varchar类型字段的在线扩展
    create table t1(a varchar(100));
    Query OK, 0 rows affected (0.05 sec)
    alter table t1 modify a varchar(300),ALGORITHM=INPLACE, LOCK=NONE;
    Query OK, 0 rows affected (0.11 sec)
    Records: 0  Duplicates: 0  Warning: 0
  • 长度大于256字节的varchar类型字段的在线扩展
    create table t1(a varchar(300));
    Query OK, 0 rows affected (0.08 sec)
    alter table t1 modify a varchar(500),ALGORITHM=INPLACE, LOCK=NONE;
    Query OK, 0 rows affected (0.06 sec)
    Records: 0  Duplicates: 0  Warning: 0