SHOW INDEX语法用于查看指定表的索引信息,包括索引类型、索引构建进度、索引列等,方便您查询表的索引结构。同时,在删除二级索引和搜索索引前您可以通过SHOW INDEX语法来查看索引是否已被禁用。
适用引擎
SHOW INDEX语法仅适用于宽表引擎。
语法
show_index_statement ::= SHOW INDEX FROM table_identifier;
返回结果集说明
字段 | 说明 |
TABLE_SCHEMA | 目标表所属的数据库。 |
DATA_TABLE | 目标表名。 |
INDEX_NAME | 索引名称。 |
INDEX_STATE | 索引状态。取值如下:
|
INDEX_PROGRESS | 索引数据构建的情况。不同索引种类的展示方法如下。
|
INDEX_TYPE | 索引种类。分别如下:
|
INDEX_COVERED | 索引是否包含冗余列。
|
INDEX_COLUMN | 构成索引键的列信息。 |
INDEX_TTL | 索引数据的有效期TTL。单位为秒(s)。 重要 未设置数据有效期TTL时,二级索引的INDEX_TTL字段返回为空,搜索索引返回为0。 |
INDEX_DESCRIPTION | 索引的额外描述信息。
|
示例
假设主表和索引的创建语句如下:
-- 创建主表
CREATE TABLE test (
p1 VARCHAR NOT NULL,
p2 INTEGER NOT NULL,
c1 BIGINT,
c2 DOUBLE,
c3 VARCHAR,
c4 TIMESTAMP,
PRIMARY KEY(p1, p2)
) WITH (CONSISTENCY = 'strong', MUTABILITY='MUTABLE_LATEST');
-- 创建二级索引idx1
CREATE INDEX idx1 ON test(c1 desc) include(c3,c4) WITH (COMPRESSION='ZSTD');
-- 创建搜索索引idx2
CREATE INDEX IF NOT EXISTS idx2 USING SEARCH ON test(p1, p2, c1, c2, c3);
执行以下语句,查看表test中的所有索引。
SHOW INDEX FROM test;
返回结果如下:
+--------------+------------+------------+-------------+-------------------------------+------------+---------------+----------------+-----------+---------------------------------------+
| TABLE_SCHEMA | DATA_TABLE | INDEX_NAME | INDEX_STATE | INDEX_PROGRESS | INDEX_TYPE | INDEX_COVERED | INDEX_COLUMN | INDEX_TTL | INDEX_DESCRIPTION |
+--------------+------------+------------+-------------+-------------------------------+------------+---------------+----------------+-----------+---------------------------------------+
| hd | test | idx1 | ACTIVE | 100% | SECONDARY | TRUE | c1,p1,p2 | | |
| hd | test | idx2 | ACTIVE | N/A | SEARCH | NA | p1,c3,p2,c2,c1 | 0 | |
+--------------+------------+------------+-------------+-------------------------------+------------+---------------+----------------+-----------+---------------------------------------+