SHOW INDEX
功能描述
SHOW INDEX
用于查看表的索引信息。
注意事项
该功能仅在数据库兼容模式为MySQL时支持(即数据库实例初始化时指定DBCOMPATIBILITY='B')。
语法格式
SHOW { INDEX | INDEXES | KEYS }
{ FROM | IN } table_name
[{FROM | IN} schema_name ]
[ WHERE expr ]
参数说明
table_name
表名,可指定表名,也可以指定
schema_name.table_name
。schema_name
schema名,可选项,若不指定,则查询的是当前schema。
若指定的表是
schema_name.table_name
格式,且显式指定了schema_name,则实际上取后者的schema。
返回结果集
字段 | 含义 |
---|---|
Table | 索引所属表名。 |
Non_unique | 是否是非唯一索引。 |
Key_name | 索引名。 |
Seq_in_index | 索引列在索引中的序号。 |
Column_name | 索引列的列名。 |
Collation | 取值有:A(默认,升序),D(降序)、NULL(索引不支持排序)。 |
Cardinality | 根据pg_statistic.stadistinct和pg_class.reltuples计算得到:
|
Sub_part | 索引前缀。如果该列仅被部分索引,则是索引字符的数量;如果整个列都被索引,则是NULL。当前不支持前缀索引,NULL。 |
Packed | 如何打包key值,create table时指定pack_keys;否则返回NULL。当前不支持,为NULL。 |
Null | 可能包含NULL值则是YES,否则为'' 。 |
Index_type | 使用的索引方法:BTREE、HASH等。 |
Comment | pg_index表中记录的indisusable为true则显示disabled,false则显示'' 。 |
Index_comment | 创建索引时COMMENT指定的注释信息。 |
示例
1、创建表和索引。
CREATE TABLE tst_t1(id int primary key,name varchar(20) NOT NULL);
CREATE INDEX tst_t1_name_ind on tst_t1(name);
2、查看表的索引。
show index from tst_t1 ;
返回结果为:
table | non_unique | key_name | seq_in_index | column_name | collation | cardinality | sub_part | packed | null | index_type | comment | index_comment
--------+------------+-----------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------
tst_t1 | t | tst_t1_name_ind | 1 | name | A | | | | | btree | |
tst_t1 | f | tst_t1_pkey | 1 | id | A | | | | | btree | |
(2 rows)