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 | |
+--------------+------------+------------+-------------+-------------------------------+------------+---------------+----------------+-----------+---------------------------------------+