STATISTICS

STATISTICS 表提供了关于表索引的信息。

  1. USE information_schema;
  2. DESC statistics;
  1. +---------------+---------------+------+------+---------+-------+
  2. | Field | Type | Null | Key | Default | Extra |
  3. +---------------+---------------+------+------+---------+-------+
  4. | TABLE_CATALOG | varchar(512) | YES | | NULL | |
  5. | TABLE_SCHEMA | varchar(64) | YES | | NULL | |
  6. | TABLE_NAME | varchar(64) | YES | | NULL | |
  7. | NON_UNIQUE | varchar(1) | YES | | NULL | |
  8. | INDEX_SCHEMA | varchar(64) | YES | | NULL | |
  9. | INDEX_NAME | varchar(64) | YES | | NULL | |
  10. | SEQ_IN_INDEX | bigint(2) | YES | | NULL | |
  11. | COLUMN_NAME | varchar(21) | YES | | NULL | |
  12. | COLLATION | varchar(1) | YES | | NULL | |
  13. | CARDINALITY | bigint(21) | YES | | NULL | |
  14. | SUB_PART | bigint(3) | YES | | NULL | |
  15. | PACKED | varchar(10) | YES | | NULL | |
  16. | NULLABLE | varchar(3) | YES | | NULL | |
  17. | INDEX_TYPE | varchar(16) | YES | | NULL | |
  18. | COMMENT | varchar(16) | YES | | NULL | |
  19. | INDEX_COMMENT | varchar(1024) | YES | | NULL | |
  20. | IS_VISIBLE | varchar(3) | YES | | NULL | |
  21. | Expression | varchar(64) | YES | | NULL | |
  22. +---------------+---------------+------+------+---------+-------+
  23. 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;对于表达式部分的索引键,这个值为表达式本身。可参考表达式索引

下列语句是等价的:

  1. SELECT * FROM INFORMATION_SCHEMA.STATISTICS
  2. WHERE table_name = 'tbl_name'
  3. AND table_schema = 'db_name'
  4. SHOW INDEX
  5. FROM tbl_name
  6. FROM db_name