更新时间:2025-09-12 GMT+08:00
分享

statistics

statistics视图提供表索引完整列相关列信息。该视图为只读,不允许修改。所有用户对这个视图有“读取”权限。由于视图中部分信息基于统计信息获取,执行analyze后再查看(如果数据库中更新数据,建议延迟执行analyze)。如果索引列不是表中的完整列,不在该视图中进行记录。

表1 information_schema.statistics字段

名称

类型

描述

TABLE_CATALOG

varchar(512)

数据库名称。该字段的值在lower_case_table_names为0时大小写敏感,在lower_case_table_names为1时大小写不敏感。

TABLE_SCHEMA

varchar(64)

索引关联的表所在schema名称。该字段的值在lower_case_table_names为0时大小写敏感,在lower_case_table_names为1时大小写不敏感。

TABLE_NAME

varchar(64)

索引关联的表名称。该字段的值在lower_case_table_names为0时大小写敏感,在lower_case_table_names为1时大小写不敏感。

NON_UNIQUE

bigint

是否是非唯一索引。如果是非唯一索引,则为1,如果是唯一索引,则为0。

INDEX_SCHEMA

varchar(64)

索引所属的模式的名称。该字段的值在lower_case_table_names为0时大小写敏感,在lower_case_table_names为1时大小写不敏感。

INDEX_NAME

varchar(64)

索引的名称。如果索引是主键,则名称始终是primary,否则为索引名称。

SEQ_IN_INDEX

bigint

索引列在索引中的序列号。

COLUMN_NAME

varchar(64)

索引列名称。

COLLATION

varchar(1)

列在索引中的排序方式: A(升序)、D (降序)。

CARDINALITY

bigint

索引中唯一值数值的数量的估计值。

SUB_PART

bigint

索引前缀。如果列仅被部分索引,则为索引的字符数;如果整列都被索引,则为NULL。

PACKED

varchar(10)

该字段当前版本暂不支持,置null。

NULLABLE

varchar(3)

索引列是否可以存在null。 yes(可以存在null), ''(不可以存在null)。

INDEX_TYPE

varchar(16)

索引方法 ( 如:BTREE、UBTREE)。

COMMENT

varchar(16)

该字段当前版本暂不支持,置null。

INDEX_COMMENT

varchar(1024)

索引注释 。

执行analyze更新统计信息后再查看视图:

my_db=# create table t1(a int);
CREATE TABLE
my_db=# insert into t1 values (1),(2);
INSERT 0 2
my_db=# create index t1_index_1 on t1(a);
CREATE INDEX
my_db=# analyze;
ANALYZE
my_db=# select table_catalog,table_name,index_name,index_type, cardinality from information_schema.statistics where table_name='t1';
 table_catalog | table_name | index_name | index_type | cardinality
---------------+------------+------------+------------+-------------
 my_db         | t1         | t1_index_1 | UBTREE     |           2
(1 row)

相关文档