
# 创建二级索引进度查询
#### 操作场景
在pfs关闭的情况下，当用户在生产环境中执行建索引的操作时，比较耗时，为支持用户查询DDL进度，本特性用于在用户关闭performance schema 之后仍可以显示高耗时创建索引操作的进度。
#### 约束与限制
- TaurusDB实例内核版本为2.0.51.240300及以上版本支持使用该功能。内核版本的查询方法请参见[如何查看云数据库 TaurusDB实例的版本号](https://support.huaweicloud.com/taurusdb_faq/taurusdb_faq_0141.html)。
- 仅支持创建二级索引查询进度信息，不支持空间索引，全文索引以及其他DDL进度查询。
 
#### 功能介绍
该特性默认打开，当表在创建索引的时候，通过查询INFORMATION_SCHEMA.INNODB_ALTER_TABLE_PROGRESS这个表的信息可以获取当前进度，表结构如下：
图1表结构   
![](https://support.huaweicloud.com/kerneldesc-taurusdb/figure/zh-cn_image_0000002010067941.png)
表1INNODB_ALTER_TABLE_PROGRESS表信息 
| 表字段               | 含义                |
|:---|:---|
| THREAD_ID         | 线程ID。             |
| QUERY             | 客户端下发的创建索引的SQL语句。 |
| START_TIME        | 创建索引的SQL语句的下发时间。  |
| ELAPSED_TIME      | 已经花费的时间（单位：秒）。    |
| ALTER_TABLE_PHASE | 当前阶段。             |
| WORK_COMPLETED    | 当前已经完成的工作量。       |
| WORK_ESTIMATED    | 整个创建索引流程工作量的估计值。  |
| TIME_REQUIRED     | 预计还需花费的时间（单位：秒）。  |
   
![](https://support.huaweicloud.com/kerneldesc-taurusdb/public_sys-resources/note_3.0-zh-cn.png)
WORK_ESTIMATED和TIME_REQUIRED会随着索引创建的进行而不断调整，因此并非线性变化。
#### 使用示例
1. 执行如下SQL查询目标表结构。 
   ```
   desc table_name;
   ```
   例如：
   查询表test_stage的结构。
   ```
   desc test_stage;
   ```
   图2查看表结构   
   ![](https://support.huaweicloud.com/kerneldesc-taurusdb/figure/zh-cn_image_0000002507865842.png)
   从上述表结构中可以看出，表test_stage中不存在二级索引。
   
   
2. 执行如下SQL，为目标表的某一列增加索引。 
   ```
   ALTER TABLE table_name ADD INDEX idxa(field_name);
   ```
   例如：
   对test_stage表的a列增加索引。
   ```
   ALTER TABLE test_stage ADD INDEX idxa(a);
   ```
   
   
3. 执行如下SQL查询创建索引的进度。 
   ```
   SELECT QUERY, ALTER_TABLE_PHASE FROM  INFORMATION_SCHEMA.INNODB_ALTER_TABLE_PROGRESS;
   ```
   图3查询创建索引的进度   
   ![](https://support.huaweicloud.com/kerneldesc-taurusdb/figure/zh-cn_image_0000001973707446.png "点击放大")
   
   
 
