Skip to content

Latest commit

 

History

History
90 lines (63 loc) · 4.49 KB

sql-statement-admin-alter-ddl.md

File metadata and controls

90 lines (63 loc) · 4.49 KB
title summary
ADMIN ALTER DDL JOBS
TiDB 数据库中 `ADMIN ALTER DDL JOBS` 的使用概况。

ADMIN ALTER DDL JOBS

ADMIN ALTER DDL JOBS 语句用于修改单个正在运行的 DDL 作业的相关参数。例如:

ADMIN ALTER DDL JOBS 101 THREAD = 8;

其中:

目前支持 ADMIN ALTER DDL JOBS 的 DDL 作业类型包括:ADD INDEXMODIFY COLUMNREORGANIZE PARTITION。对于其他 DDL 作业类型,执行 ADMIN ALTER DDL JOBS 会报 unsupported DDL operation 的错误。

目前在一条 ADMIN ALTER DDL JOBS 中仅支持对单个 DDL 作业的参数进行调整,不支持同时调整多个 ID 对应的参数。

以下是不同 DDL 作业类型支持的各项参数,及其对应的系统变量:

  • ADD INDEX

    • THREAD:并发度,初始值由系统变量 tidb_ddl_reorg_worker_cnt 设置。
    • BATCH_SIZE:批大小,初始值由系统变量 tidb_ddl_reorg_batch_size 设置。
    • MAX_WRITE_SPEED:向每个 TiKV 导入索引记录时的最大带宽限制,初始值由系统变量 tidb_ddl_reorg_max_write_speed 设置。

    以上设置,当前仅对关闭 tidb_enable_dist_task 后,提交并运行中的 ADD INDEX 的作业生效。

  • MODIFY COLUMN

    • THREAD:并发度,初始值由系统变量 tidb_ddl_reorg_worker_cnt 设置。
    • BATCH_SIZE:批大小,初始值由系统变量 tidb_ddl_reorg_batch_size 设置。
  • REORGANIZE PARTITION

    • THREAD:并发度,初始值由系统变量 tidb_ddl_reorg_worker_cnt 设置。
    • BATCH_SIZE:批大小,初始值由系统变量 tidb_ddl_reorg_batch_size 设置。

参数的取值范围和对应系统变量的取值范围保持一致。

ADMIN ALTER DDL JOBS 仅对正在运行的 DDL 作业生效。如果 DDL 作业不存在或者已经结束,执行该语句会报 ddl job is not running 的错误。

以下是部分语句示例:

ADMIN ALTER DDL JOBS 101 THREAD = 8;
ADMIN ALTER DDL JOBS 101 BATCH_SIZE = 256;
ADMIN ALTER DDL JOBS 101 MAX_WRITE_SPEED = '200MiB';
ADMIN ALTER DDL JOBS 101 THREAD = 8, BATCH_SIZE = 256;

要查看某个 DDL 作业当前的参数值,可以执行 ADMIN SHOW DDL JOBS,结果显示在 COMMENTS 列:

admin show ddl jobs 1;
+--------+---------+------------+-----------+--------------+-----------+----------+-----------+----------------------------+----------------------------+----------------------------+--------+-----------------------+
| JOB_ID | DB_NAME | TABLE_NAME | JOB_TYPE  | SCHEMA_STATE | SCHEMA_ID | TABLE_ID | ROW_COUNT | CREATE_TIME                | START_TIME                 | END_TIME                   | STATE  | COMMENTS              |
+--------+---------+------------+-----------+--------------+-----------+----------+-----------+----------------------------+----------------------------+----------------------------+--------+-----------------------+
|    124 | test    | t          | add index | public       |         2 |      122 |         3 | 2024-11-15 11:17:06.213000 | 2024-11-15 11:17:06.213000 | 2024-11-15 11:17:08.363000 | synced | ingest, DXF, thread=8 |
+--------+---------+------------+-----------+--------------+-----------+----------+-----------+----------------------------+----------------------------+----------------------------+--------+-----------------------+
1 row in set (0.01 sec)

语法图

AdminAlterDDLStmt ::=
    'ADMIN' 'ALTER' 'DDL' 'JOBS' Int64Num AlterJobOptionList

AlterJobOptionList ::=
    AlterJobOption ( ',' AlterJobOption )*

AlterJobOption ::=
    identifier "=" SignedLiteral

MySQL 兼容性

ADMIN ALTER DDL JOBS 语句是 TiDB 对 MySQL 语法的扩展。

另请参阅