您可以通过修改参数设置来改变DDL执行引擎的行为。本文将介绍如何修改DDL执行引擎相关参数。
DDL执行引擎相关参数
目前您可以在PolarDB-X 1.0控制台上自定义如下与DDL执行引擎相关的参数。
参数 | 影响范围 | 默认值 |
---|---|---|
ENABLE_ASYNC_DDL | 数据库级别、语句级别 | TRUE(启用) |
PURE_ASYNC_DDL_MODE | 数据库级别、会话级别、语句级别 | FALSE(禁用) |
MAX_TABLE_PARTITIONS_PER_DB | 数据库级别、语句级别 | 128 |
ENABLE_ASYNC_DDL
- 说明
- 该参数默认启用,即采用新的DDL执行引擎。
- 禁用该参数后,PolarDB-X 1.0将使用5.3.12版本之前的DDL执行引擎,PURE_ASYNC_DDL_MODE和MAX_TABLE_PARTITIONS_PER_DB参数将不会生效。建议您提交工单咨询技术支持后,再决定是否禁用该参数。
- 用法
- 数据库级别:通过PolarDB-X 1.0控制台的参数设置进行调整,整个数据库范围内生效,详情请参见参数设置。
- 语句级别:通过在DDL语句前增加HINT的方式
/*+TDDL:cmd_extra(ENABLE_ASYNC_DDL=FALSE)*/
,可以实现语句级别的控制,仅对该语句生效。
PURE_ASYNC_DDL_MODE
- 说明
- 该参数仅在
ENABLE_ASYNC_DDL
为TRUE时生效。 - 禁用该参数时,客户端连接PolarDB-X 1.0执行DDL时是同步阻塞的模式,即DDL任务执行完毕后再返回请求结果。客户端与PolarDB-X 1.0连接被中断后,正在执行的DDL任务也可能被中断。
- 启用该参数后,客户端连接PolarDB-X 1.0执行DDL时是异步模式,即收到DDL请求便立即返回请求结果,而DDL任务继续在后台执行。您可以通过SHOW DDL查看DDL任务的状态,关于如何使用SHOW DDL,详情请参见任务管理语句。
- 建议您在明确需要启用异步模式规避客户端与PolarDB-X 1.0连接意外中断的场景下将该参数设置为TRUE。否则,为了保证与MySQL执行DDL行为的兼容性,建议您保持该参数的默认值(FALSE)即可。
- 该参数仅在
- 用法
- 数据库级别:通过PolarDB-X 1.0控制台的参数设置进行调整,整个数据库范围内生效,详情请参见参数设置。
- 会话级别:
- 连接PolarDB-X 1.0后,执行
set PURE_ASYNC_DDL_MODE=true
或set PURE_ASYNC_DDL_MODE=1
设置会话变量启用异步模式,在当前会话范围内生效。 - 通过
set PURE_ASYNC_DDL_MODE=false
或set PURE_ASYNC_DDL_MODE=0
恢复该会话的默认行为,使用同步模式。
- 连接PolarDB-X 1.0后,执行
- 语句级别:通过在DDL语句前增加HINT的方式
/*+TDDL:cmd_extra(PURE_ASYNC_DDL_MODE=TRUE)*/
,可以实现语句级别的控制,仅对该语句生效。
MAX_TABLE_PARTITIONS_PER_DB
- 说明
- 该参数仅在
ENABLE_ASYNC_DDL
为TRUE时生效。 - 创建拆分表时,若指定的单个物理库的分表数超过该参数的限制,DDL任务将报错停止执行。
说明 该参数取值范围为1~65535,默认值为128。
- 该参数仅在
- 用法
- 数据库级别:通过PolarDB-X 1.0控制台的参数设置进行调整,整个数据库范围内生效,详情请参见参数设置。
- 语句级别:通过在DDL语句前增加HINT的方式
/*+TDDL:cmd_extra(MAX_TABLE_PARTITIONS_PER_DB=400)*/
,可以实现语句级别的控制,仅对该语句生效。