首批通过分布式安全可靠测评,为关键业务系统打造
Online DDL 和 Offline DDL 操作
更新时间:2026-07-15 20:42:47
OceanBase 数据库 V4.x 版本 MySQL 模式下所支持的 Online DDL 操作如下表所示。
| 分类 | 操作 | 耗时 | 备注 |
|---|---|---|---|
| 索引操作 | 增加索引 | 与数据量有关,需要重整数据 | 主要涉及全局/局部索引、全局索引带有分区和空间索引(V4.1.0 版本及以后版本支持)。 |
| 索引操作 | 删除索引 | 与是否有活跃事务有关 | 暂无 |
| 索引操作 | 重命名索引 | 只需要修改元数据 | 暂无 |
| 索引操作 | 混合索引操作 | 与耗时最长的操作有关 | 例如 ALTER TABLE t1 ADD INDEX i4(c1), DROP INDEX i2, RENAME INDEX i1 TO i1x。 |
| 列操作 | 末尾加列 | 只需要修改元数据 | 例如增加 LOB(TEXT) 列,ALTER TABLE tbl1 ADD c3 LOB。 |
| 列操作 | 中间加列(BEFORE/AFTER/FIRST) |
只需要修改元数据 | Oracle 模式不支持 |
| 列操作 | 添加 VIRTUAL 列 |
只需要修改元数据 | 暂无 |
| 列操作 | 修改列为 NOT NULL |
与数据量有关,需要重整数据 | 暂无 |
| 列操作 | 修改列为 NULL |
只需要修改元数据 | 暂无 |
| 列操作 | 设列默认值 | 只需要修改元数据 | 暂无 |
| 列操作 | 删除列默认值 | 只需要修改元数据 | 暂无 |
| 列操作 | 修改自增列值 | 只需要修改元数据 | 暂无 |
| 列操作 | 重命名列 | 只需要修改元数据 | 暂无 |
| 列操作 | 增加列类型长度或精度 | 只需要修改元数据 | 例如 INT 长度增长、VARCHAR 变长、NUMBER 类转换。 |
| 列操作 | 混合列操作 | 与耗时最长的操作有关 | 如果有 Offline 列操作,会升级成 Offline DDL。 |
| 外键约束操作 | 增加外键、CHECK/NOT NULL 约束 |
与数据量有关,需要查询数据。 | 暂无 |
| 外键约束操作 | 删除外键、CHECK/NOT NULL 约束 |
与数据量有关,需要查询数据。 | 暂无 |
| 表操作 | 重命名表 | 只需要修改元数据 | 暂无 |
| 表操作 | 修改行格式 | 只需要修改元数据 | 暂无 |
| 表操作 | 修改块大小 | 只需要修改元数据 | 暂无 |
| 表操作 | 修改压缩算法 | 只需要修改元数据 | 暂无 |
| 表操作 | 优化表空间 | 只需要修改元数据 | 暂无 |
| 分区操作 | 添加分区 | 只需要修改元数据 | 暂无 |
OceanBase 数据库 V4.x 版本 MySQL 模式下所支持的 Offline DDL 操作如下表所示。
| 分类 | 操作 | 耗时 | 备注 |
|---|---|---|---|
| 列操作 | 重排列(BEFORE/AFTER/FIRST) |
与数据量有关,需要重整数据 | Oracle 模式不支持 |
| 列操作 | 添加自增列 | 与数据量有关,需要重整数据 | 暂无 |
| 列操作 | 修改为自增列 | 与数据量有关,需要查询数据 | 暂无 |
| 列操作 | 修改列类型 | 与数据量有关,需要重整数据 | Oracle 模式不支持 |
| 列操作 | 修改列为主键 | 与数据量有关,需要重整数据 | 暂无 |
| 列操作 | 添加/删除 STORED 生成列 |
与数据量有关,需要重整数据 | 暂无 |
| 列操作 | 删除列 | 与数据量有关,需要重整数据 | 暂无 |
| 列操作 | 删除 VIRTUAL 列 |
与数据量有关,需要重整数据 | 暂无 |
| 列操作 | 混合列操作 | 与数据量有关,需要重整数据 | 暂无 |
| 主键操作 | 添加/删除主键 | 与数据量有关,需要重整数据 | 暂无 |
| 表操作 | TRUNCATE 表 |
与是否有活跃事务有关 | 暂无 |
| 表操作 | 转换字符集 | 与数据量有关,需要重整数据 | Oracle 模式不支持 |
| 表操作 | 删除表 | 与是否有活跃事务有关 | 暂无 |
| 分区操作 | 修改分区规则 | 与数据量有关,需要重整数据 | 暂无 |
| 分区操作 | 删除分区 | 与是否有活跃事务有关 | 对该分区加分区级的表锁。 |
| 分区操作 | TRUNCATE 分区 |
与是否有活跃事务有关 | 对该分区加分区级的表锁。 |