# DDL 的执行 （继续）

__*job queue*__
__*Add index queue*__
__*history queue*__

![`smart`](DDLExecution02_aa_005_20220512.png)
-------------------------------------------------------------
下面介绍一下 TiKV 中的队列:

Job Queue: 是 TiKV 中持久化未执行 Job 的队列数据结构, 但是里面不包含 Add Index Job, 因为添加索引的 Job 会被放在 Add Index Queue 中, 每个 TiDB 数据库只有一个。

Add Index Queue: 是 TiKV 中持久化未执行的 Add Index Job 队列数据结构, 每个 TiDB 数据库只有一个。

Job Queue 和 Add Index Queue 中的 Job 可以被并行执行。

Job History Queue: 是 TiKV 中持久化存放已经处理完毕 Job 的队列数据结构, 每个 TiDB 数据库只有一个。

所以, Worker 进程会并行从 Job Queue 和 Add Index Queue 中取出第一个未执行的 Job 去执行, 执行完毕后, 将 Job 放入 Job History Queue 以备查询。

当 Job 在执行的过程中, 会经历 none, delete only, write only, write reorganizaton（delete reorganization）, public 几个状态。

