您可以通過修改參數設定來改變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)*/,可以實現語句層級的控制,僅對該語句生效。