title: STATISTICS
summary: 了解 information_schema 表 STATISTICS。
STATISTICS
STATISTICS 表提供了关于表索引的信息。
USE information_schema;DESC statistics;
+---------------+---------------+------+------+---------+-------+| Field | Type | Null | Key | Default | Extra |+---------------+---------------+------+------+---------+-------+| TABLE_CATALOG | varchar(512) | YES | | NULL | || TABLE_SCHEMA | varchar(64) | YES | | NULL | || TABLE_NAME | varchar(64) | YES | | NULL | || NON_UNIQUE | varchar(1) | YES | | NULL | || INDEX_SCHEMA | varchar(64) | YES | | NULL | || INDEX_NAME | varchar(64) | YES | | NULL | || SEQ_IN_INDEX | bigint(2) | YES | | NULL | || COLUMN_NAME | varchar(21) | YES | | NULL | || COLLATION | varchar(1) | YES | | NULL | || CARDINALITY | bigint(21) | YES | | NULL | || SUB_PART | bigint(3) | YES | | NULL | || PACKED | varchar(10) | YES | | NULL | || NULLABLE | varchar(3) | YES | | NULL | || INDEX_TYPE | varchar(16) | YES | | NULL | || COMMENT | varchar(16) | YES | | NULL | || INDEX_COMMENT | varchar(1024) | YES | | NULL | || IS_VISIBLE | varchar(3) | YES | | NULL | || Expression | varchar(64) | YES | | NULL | |+---------------+---------------+------+------+---------+-------+18 rows in set (0.00 sec)
STATISTICS 表中列的含义如下:
TABLE_CATALOG:包含索引的表所属的目录的名称。这个值总是def。TABLE_SCHEMA:包含索引的表所属的数据库的名称。TABLE_NAME:包含索引的表的名称。NON_UNIQUE:如果索引不能包含重复项,则为0;如果可以,则为1。INDEX_SCHEMA:索引所属的数据库的名称。INDEX_NAME:索引的名称。如果索引是主键,那么名称总是PRIMARY。SEQ_IN_INDEX:索引中的列序号,从1开始。COLUMN_NAME:列名。请参见表达式列的说明。COLLATION:列在索引中的排序方式。取值可以是A(升序)、D(降序)或NULL(未排序)。CARDINALITY:TiDB 未使用该字段。该字段的值总是0。SUB_PART:索引的前缀。如果只对列的部分前缀进行索引,则为索引字符的数量;如果对整个列进行索引,则为NULL。PACKED:TiDB 未使用该字段。这个值总是NULL。NULLABLE:如果列可能包含NULL值,则值为YES;如果不包含,则值为''。INDEX_TYPE:索引的类型。COMMENT:其他与索引有关的信息。INDEX_COMMENT:在创建索引时为索引提供的带有注释属性的任何注释。IS_VISIBLE:优化器能否使用该索引。Expression对于非表达式部分的索引键,这个值为NULL;对于表达式部分的索引键,这个值为表达式本身。可参考表达式索引
下列语句是等价的:
SELECT * FROM INFORMATION_SCHEMA.STATISTICSWHERE table_name = 'tbl_name'AND table_schema = 'db_name'SHOW INDEXFROM tbl_nameFROM db_name