Skip to content

Commit c51255c

Browse files
authored
docs: add documentation for ADMIN ALTER DDL JOBS command (#19085) (#19185)
1 parent 2106a42 commit c51255c

File tree

3 files changed

+137
-37
lines changed

3 files changed

+137
-37
lines changed

TOC.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -735,6 +735,7 @@
735735
- SQL 语句
736736
- [概览](/sql-statements/sql-statement-overview.md)
737737
- [`ADMIN`](/sql-statements/sql-statement-admin.md)
738+
- [`ADMIN ALTER DDL JOBS`](/sql-statements/sql-statement-admin-alter-ddl.md)
738739
- [`ADMIN CANCEL DDL`](/sql-statements/sql-statement-admin-cancel-ddl.md)
739740
- [`ADMIN CHECKSUM TABLE`](/sql-statements/sql-statement-admin-checksum-table.md)
740741
- [`ADMIN CHECK [TABLE|INDEX]`](/sql-statements/sql-statement-admin-check-table-index.md)
Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
---
2+
title: ADMIN ALTER DDL JOBS
3+
summary: TiDB 数据库中 `ADMIN ALTER DDL JOBS` 的使用概况。
4+
---
5+
6+
# ADMIN ALTER DDL JOBS
7+
8+
`ADMIN ALTER DDL JOBS` 语句用于修改单个正在运行的 DDL 作业的相关参数。例如:
9+
10+
```sql
11+
ADMIN ALTER DDL JOBS 101 THREAD = 8;
12+
```
13+
14+
其中:
15+
16+
- `101`:表示 DDL 作业的 ID,该 ID 可以通过查询 [`ADMIN SHOW DDL JOBS`](/sql-statements/sql-statement-admin-show-ddl.md) 获得。
17+
- `THREAD`:表示当前 DDL 作业的并发度,其初始值由系统变量 [`tidb_ddl_reorg_worker_cnt`](/system-variables.md#tidb_ddl_reorg_worker_cnt) 设置。
18+
19+
目前支持 `ADMIN ALTER DDL JOBS` 的 DDL 作业类型包括:`ADD INDEX``MODIFY COLUMN``REORGANIZE PARTITION`。对于其他 DDL 作业类型,执行 `ADMIN ALTER DDL JOBS` 会报 `unsupported DDL operation` 的错误。
20+
21+
目前在一条 `ADMIN ALTER DDL JOBS` 中仅支持对单个 DDL 作业的参数进行调整,不支持同时调整多个 ID 对应的参数。
22+
23+
以下是不同 DDL 作业类型支持的各项参数,及其对应的系统变量:
24+
25+
- `ADD INDEX`
26+
- `THREAD`:并发度,初始值由系统变量 `tidb_ddl_reorg_worker_cnt` 设置。
27+
- `BATCH_SIZE`:批大小,初始值由系统变量 [`tidb_ddl_reorg_batch_size`](/system-variables.md#tidb_ddl_reorg_batch_size) 设置。
28+
- `MAX_WRITE_SPEED`:向每个 TiKV 导入索引记录时的最大带宽限制,初始值由系统变量 [`tidb_ddl_reorg_max_write_speed`](/system-variables.md#tidb_ddl_reorg_max_write_speed-从-v850-版本开始引入) 设置。
29+
30+
以上设置,当前仅对关闭 [`tidb_enable_dist_task`](/system-variables.md#tidb_enable_dist_task-从-v710-版本开始引入) 后,提交并运行中的 `ADD INDEX` 的作业生效。
31+
32+
- `MODIFY COLUMN`
33+
- `THREAD`:并发度,初始值由系统变量 `tidb_ddl_reorg_worker_cnt` 设置。
34+
- `BATCH_SIZE`:批大小,初始值由系统变量 `tidb_ddl_reorg_batch_size` 设置。
35+
36+
- `REORGANIZE PARTITION`
37+
- `THREAD`:并发度,初始值由系统变量 `tidb_ddl_reorg_worker_cnt` 设置。
38+
- `BATCH_SIZE`:批大小,初始值由系统变量 `tidb_ddl_reorg_batch_size` 设置。
39+
40+
参数的取值范围和对应系统变量的取值范围保持一致。
41+
42+
`ADMIN ALTER DDL JOBS` 仅对正在运行的 DDL 作业生效。如果 DDL 作业不存在或者已经结束,执行该语句会报 `ddl job is not running` 的错误。
43+
44+
以下是部分语句示例:
45+
46+
```sql
47+
ADMIN ALTER DDL JOBS 101 THREAD = 8;
48+
ADMIN ALTER DDL JOBS 101 BATCH_SIZE = 256;
49+
ADMIN ALTER DDL JOBS 101 MAX_WRITE_SPEED = '200MiB';
50+
ADMIN ALTER DDL JOBS 101 THREAD = 8, BATCH_SIZE = 256;
51+
```
52+
53+
要查看某个 DDL 作业当前的参数值,可以执行 `ADMIN SHOW DDL JOBS`,结果显示在 `COMMENTS` 列:
54+
55+
```sql
56+
admin show ddl jobs 1;
57+
```
58+
59+
```
60+
+--------+---------+------------+-----------+--------------+-----------+----------+-----------+----------------------------+----------------------------+----------------------------+--------+-----------------------+
61+
| JOB_ID | DB_NAME | TABLE_NAME | JOB_TYPE | SCHEMA_STATE | SCHEMA_ID | TABLE_ID | ROW_COUNT | CREATE_TIME | START_TIME | END_TIME | STATE | COMMENTS |
62+
+--------+---------+------------+-----------+--------------+-----------+----------+-----------+----------------------------+----------------------------+----------------------------+--------+-----------------------+
63+
| 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 |
64+
+--------+---------+------------+-----------+--------------+-----------+----------+-----------+----------------------------+----------------------------+----------------------------+--------+-----------------------+
65+
1 row in set (0.01 sec)
66+
```
67+
68+
## 语法图
69+
70+
```ebnf+diagram
71+
AdminAlterDDLStmt ::=
72+
'ADMIN' 'ALTER' 'DDL' 'JOBS' Int64Num AlterJobOptionList
73+
74+
AlterJobOptionList ::=
75+
AlterJobOption ( ',' AlterJobOption )*
76+
77+
AlterJobOption ::=
78+
identifier "=" SignedLiteral
79+
```
80+
81+
## MySQL 兼容性
82+
83+
`ADMIN ALTER DDL JOBS` 语句是 TiDB 对 MySQL 语法的扩展。
84+
85+
## 另请参阅
86+
87+
* [`ADMIN SHOW DDL [JOBS|QUERIES]`](/sql-statements/sql-statement-admin-show-ddl.md)
88+
* [`ADMIN CANCEL DDL`](/sql-statements/sql-statement-admin-cancel-ddl.md)
89+
* [`ADMIN PAUSE DDL`](/sql-statements/sql-statement-admin-pause-ddl.md)
90+
* [`ADMIN RESUME DDL`](/sql-statements/sql-statement-admin-resume-ddl.md)

0 commit comments

Comments
 (0)