
# 在线扩展varchar类型字段
#### 功能介绍
当字段类型是varchar时，原生MySQL只支持不跨越256字节的在线扩展（online），对于跨越256字节的扩展只支持复制方式（copy），扩展时需要锁表且禁止对数据表进行写操作。华为云RDS for MySQL支持跨越256字节的扩展，支持对任何长度的varchar类型的字段进行在线扩展操作。
#### 支持的RDS for MySQL版本
建议您使用最新小版本的实例在线扩展varchar类型字段。更多操作，详见[升级内核小版本](https://support.huaweicloud.com/usermanual-rds-mysql/rds_05_0003.html)。
表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
  ```
  
 
