ADMIN SHOW DDL [JOBS|QUERIES]

    ADMIN SHOW DDL [JOBS|QUERIES] 语句显示了正在运行和最近完成的 DDL 作业的信息。

    可以通过 ADMIN SHOW DDL 语句查看当前正在运行的 DDL 作业:

      ADMIN SHOW DDL JOBS 语句用于查看当前 DDL 作业队列中的所有结果(包括正在运行以及等待运行的任务)以及已执行完成的 DDL 作业队列中的最近十条结果。

      1. ADMIN SHOW DDL JOBS;
      • job_id 为 59 的 DDL 作业当前正在进行中(STATE 列显示为 running)。SCHEMA_STATE 列显示了表当前处于 write reorganization 状态,一旦任务完成,将更改为 ,以便用户会话可以公开观察到状态变更。end_time 列显示为 NULL,表明当前作业的完成时间未知。

      • job_id 为 60 的 JOB_TYPE 显示为 add index,表明正在排队等待 job_id 为 59 的作业完成。当作业 59 完成时,作业 60 的 STATE 将更改为 running

      • 对于破坏性的更改(例如删除索引或删除表),当作业完成时,SCHEMA_STATE 将变为 none。对于附加更改,SCHEMA_STATE 将变为 public

      1. ADMIN SHOW DDL JOBS [NUM] [WHERE where_condition];
      • :用于查看已经执行完成的 DDL 作业队列中最近 NUM 条结果;未指定时,默认值为 10。
      • WHEREWHERE 子句,用于添加过滤条件。

      ADMIN SHOW DDL JOB QUERIES 语句用于查看 job_id 对应的 DDL 任务的原始 SQL 语句:

      1. +--------------------------------------------------------------+
      2. | QUERY |
      3. +--------------------------------------------------------------+
      4. | CREATE TABLE t1 (id INT NOT NULL PRIMARY KEY auto_increment) |
      5. +--------------------------------------------------------------+
      6. 1 row in set (0.02 sec)

      只能在 DDL 历史作业队列中最近十条结果中搜索与 job_id 对应的正在运行中的 DDL 作业。

      ADMIN SHOW DDL [JOBS|QUERIES] 语句是 TiDB 对 MySQL 语法的扩展。