VastbaseG100

基于openGauss内核开发的企业级关系型数据库。

Menu

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计算得到:
  • stadistinct > 0: stadistinct
  • stadistinct = 0: NULL
  • stadistinct < 0: reltuples * stadistinct * -1
  • 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)