文档首页/ 云数据库 TaurusDB/ 内核介绍/ DDL优化/ 创建二级索引进度查询
更新时间:2026-01-12 GMT+08:00
分享

创建二级索引进度查询

操作场景

在pfs关闭的情况下,当用户在生产环境中执行建索引的操作时,比较耗时,为支持用户查询DDL进度,本特性用于在用户关闭performance schema 之后仍可以显示高耗时创建索引操作的进度。

约束与限制

  • TaurusDB实例内核版本为2.0.51.240300及以上版本支持使用该功能。内核版本的查询方法请参见如何查看云数据库 TaurusDB实例的版本号
  • 仅支持创建二级索引查询进度信息,不支持空间索引,全文索引以及其他DDL进度查询。

功能介绍

该特性默认打开,当表在创建索引的时候,通过查询INFORMATION_SCHEMA.INNODB_ALTER_TABLE_PROGRESS这个表的信息可以获取当前进度,表结构如下:

图1 表结构
表1 INNODB_ALTER_TABLE_PROGRESS表信息

表字段

含义

THREAD_ID

线程ID。

QUERY

客户端下发的创建索引的SQL语句。

START_TIME

创建索引的SQL语句的下发时间。

ELAPSED_TIME

已经花费的时间(单位:秒)。

ALTER_TABLE_PHASE

当前阶段。

WORK_COMPLETED

当前已经完成的工作量。

WORK_ESTIMATED

整个创建索引流程工作量的估计值。

TIME_REQUIRED

预计还需花费的时间(单位:秒)。

WORK_ESTIMATED和TIME_REQUIRED会随着索引创建的进行而不断调整,因此并非线性变化。

使用示例

  1. 执行如下SQL查询目标表结构。

    desc table_name;

    例如:

    查询表test_stage的结构。

    desc test_stage;
    图2 查看表结构

    从上述表结构中可以看出,表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 查询创建索引的进度

相关文档