首批通过分布式安全可靠测评,为关键业务系统打造
并行 DDL
更新时间:2026-04-07 20:57:20
OceanBase 数据库支持并行 DDL 操作,以提升数据库在执行 DDL 时的执行效率。
配置并行 DDL
在 OceanBase 数据库中,可以通过配置配置项灵活控制并行 DDL 功能:
_enable_parallel_table_creation:控制并行CREATE TABLE操作。_parallel_ddl_control:控制并行TRUNCATE TABLE、COMMENT、CREATE INDEX和DROP TABLE操作。说明
对于 OceanBase 数据库 V4.3.5 版本,
_parallel_ddl_control从 V4.3.5 BP3 版本开始支持控制并行DROP TABLE操作。
_enable_parallel_table_creation
_enable_parallel_table_creation 用于控制是否在租户级别开启并发创建表(CREATE TABLE)的功能。
| 属性 | 描述 |
|---|---|
| 参数类型 | 布尔类型 |
| 默认值 | True,表示开启并发创建表的功能。 |
| 取值范围 |
|
| 生效模式 | 立即生效 |
示例如下:
在
sys租户中执行下面语句,设置用户租户mysql001关闭并发创建表的功能。ALTER SYSTEM SET _enable_parallel_table_creation = false tenant=mysql001;在用户租户中执行下面语句,设置关闭并发创建表的功能。
MySQL 模式:
ALTER SYSTEM SET _enable_parallel_table_creation = false;Oracle 模式:
说明
Oracle 模式下,在语法上隐藏配置项需加双引号。
ALTER SYSTEM SET "_enable_parallel_table_creation" = false;
_parallel_ddl_control
_parallel_ddl_control 用于控制是否在租户级别开启各类并行 DDL 的功能。
| 属性 | 描述 |
|---|---|
| 参数类型 | STRING |
| 默认值 | 空字符串,语义如下:
说明若对个别并行 DDL 进行操作,则没有涉及的 DDL 类型除 |
| 取值范围 | 空串,或 DDL:{ON | OFF} [, DDL:{ON | OFF}] [, ...]。 DDL 类型信息详见下表。 |
| 生效模式 | 立即生效 |
DDL 类型信息:
| DDL类型 | 取值 |
|---|---|
| TRUNCATE_TABLE | TRUNCATE_TABLE:{ON | OFF} |
| SET_COMMENT | SET_COMMENT:{ON | OFF} |
| CREATE_INDEX | CREATE_INDEX:{ON | OFF} |
| DROP_TABLE | DROP_TABLE:{ON | OFF}
说明对于 OceanBase 数据库 V4.3.5 版本, |
注意
OceanBase 数据库当前版本暂不支持全文索引、多值索引和向量索引并发执行。
示例如下:
在
sys租户中执行下面语句,设置用户租户mysql001关闭并行TRUNCATE TABLE和开启并行CREATE INDEX的功能。ALTER SYSTEM SET _parallel_ddl_control = 'CREATE_INDEX:ON, TRUNCATE_TABLE:OFF' tenant = 'mysql001';在用户租户中执行下面语句,设置关闭并行
TRUNCATE TABLE和开启并行CREATE INDEX的功能。MySQL 模式:
ALTER SYSTEM SET _parallel_ddl_control = 'CREATE_INDEX:ON, TRUNCATE_TABLE:OFF';Oracle 模式:
说明
Oracle 模式下,在语法上隐藏配置项需加双引号。
ALTER SYSTEM SET "_parallel_ddl_control" = 'CREATE_INDEX:ON, TRUNCATE_TABLE:OFF';
DDL 默认并行度
在 OceanBase 数据库中可以使用会话(Session)级参数 _force_parallel_ddl_dop 指定 DDL 操作并行执行的默认并行度。
说明
若未使用 PARALLEL Hint 显式指定并行度,则 DDL 将使用 _force_parallel_ddl_dop 设置的值作为并行度。
在使用并行 DDL 功能时,可以预先通过 _force_parallel_ddl_dop 设置 DDL 并行执行的并行度。
示例
在用户租户中执行下面语句,设置 Session 级 DDL 操作并行执行的默认并行度为 16。
MySQL 模式:
SET _FORCE_PARALLEL_DDL_DOP = 16;
Oracle 模式:
SET "_FORCE_PARALLEL_DDL_DOP" = 16;