您可以通过修改参数设置来改变DDL执行引擎的行为。本文将介绍如何修改DDL执行引擎相关参数。

DDL执行引擎相关参数

目前您可以在DRDS控制台上自定义如下与DDL执行引擎相关的参数。

参数 影响范围 默认值
ENABLE_ASYNC_DDL 数据库级别、语句级别 TRUE(启用)
PURE_ASYNC_DDL_MODE 数据库级别、会话级别、语句级别 FALSE(禁用)
MAX_TABLE_PARTITIONS_PER_DB 数据库级别、语句级别 128

ENABLE_ASYNC_DDL

  • 说明
  • 用法
    • 数据库级别:通过DRDS控制台的参数设置进行调整,整个数据库范围内生效,详情请参见参数设置
    • 语句级别:通过在DDL语句前增加HINT的方式/*+TDDL:cmd_extra(ENABLE_ASYNC_DDL=FALSE)*/,可以实现语句级别的控制,仅对该语句生效。

PURE_ASYNC_DDL_MODE

  • 说明
    • 该参数仅在ENABLE_ASYNC_DDL为TRUE时生效。
    • 禁用该参数时,客户端连接DRDS执行DDL时是同步阻塞的模式,即DDL任务执行完毕后再返回请求结果。客户端与连接被中断后,正在执行的DDL任务也可能被中断。
    • 启用该参数后,客户端连接DRDS执行DDL时是异步模式,即收到DDL请求便立即返回请求结果,而DDL任务继续在后台执行。您可以通过SHOW DDL查看DDL任务的状态,关于如何使用SHOW DDL,详情请参见任务管理语句
    • 建议您在明确需要启用异步模式规避客户端与DRDS连接意外中断的场景下将该参数设置为TRUE。否则,为了保证与MySQL执行DDL行为的兼容性,建议您保持该参数的默认值(FALSE)即可。
  • 用法
    • 数据库级别:通过DRDS控制台的参数设置进行调整,整个数据库范围内生效,详情请参见参数设置
    • 会话级别:
      • 连接DRDS后,执行set PURE_ASYNC_DDL_MODE=trueset PURE_ASYNC_DDL_MODE=1设置会话变量启用异步模式,在当前会话范围内生效。
      • 通过set PURE_ASYNC_DDL_MODE=falseset PURE_ASYNC_DDL_MODE=0恢复该会话的默认行为,使用同步模式。
    • 语句级别:通过在DDL语句前增加HINT的方式/*+TDDL:cmd_extra(PURE_ASYNC_DDL_MODE=TRUE)*/,可以实现语句级别的控制,仅对该语句生效。

MAX_TABLE_PARTITIONS_PER_DB

  • 说明
    • 该参数仅在ENABLE_ASYNC_DDL为TRUE时生效。
    • 创建拆分表时,若指定的单个物理库的分表数超过该参数的限制,DDL任务将报错停止执行。
      说明 该参数取值范围为1~65535,默认值为128。
  • 用法
    • 数据库级别:通过DRDS控制台的参数设置进行调整,整个数据库范围内生效,详情请参见参数设置
    • 语句级别:通过在DDL语句前增加HINT的方式/*+TDDL:cmd_extra(MAX_TABLE_PARTITIONS_PER_DB=400)*/,可以实现语句级别的控制,仅对该语句生效。