OceanBase 中,DDL 执行模式,Online DDL 的特点是()
A. DDL 执行期间业务 DML 完全不可执行
B. 业务读写不受锁表影响,后台完成表结构变更
C. Online DDL 执行不需要占用资源单元
D. 所有 DDL 语句都支持 Online 模式
正确答案是 B 。
OceanBase 的 Online DDL 特性,其核心目的就是为了在业务不停机、不中断读写的情况下,在线完成表结构变更。
关于其他选项的分析:
- A. DDL 执行期间业务 DML 完全不可执行 :错误。这正是 Online DDL 所要避免的。它的目标就是让 DML (数据的增删改查) 操作与 DDL 可以并发执行,不受影响。
- C. Online DDL 执行不需要占用资源单元 :错误。Online DDL 虽然在后台执行,但依然会消耗 CPU、IO 和内存等资源。在执行大表 DDL 时,仍需关注其对业务流量的潜在影响,建议在业务低峰期操作。
-
D. 所有 DDL 语句都支持 Online 模式 :错误。并非所有 DDL 都是在线操作。OceanBase 中,像“在表中间加列 (BEFORE/AFTER/FIRST)”这类需要重写全表数据的操作,在特定版本或模式下可能不是 Online 的。添加
ONLINE关键字可以显式指定,但能否真正“在线”仍取决于具体的 DDL 类型。
一点补充 :OceanBase 在执行某些无需重写数据的 DDL(如在表末尾加列)时,会采用更高效的“原地 DDL”模式,只需修改元数据,速度极快,对业务影响更小。