SHOW [EXTENDED] {INDEX | INDEXES | KEYS}
{FROM | IN} tbl_name
[{FROM | IN} db_name]
[WHERE expr]
显示索引
返回表索引信息。该格式类似于 ODBC 中的 SQLStatistics
调用。此语句需要对表中的任何列具有某些权限。
mysql> SHOW INDEX FROM City\G
*************************** 1. row ***************************
Table: city
Non_unique: 0
Key_name: PRIMARY
Seq_in_index: 1
Column_name: ID
Collation: A
Cardinality: 4188
Sub_part: NULL
Packed: NULL
Null:
Index_type: BTREE
Comment:
Index_comment:
Visible: YES
Expression: NULL
*************************** 2. row ***************************
Table: city
Non_unique: 1
Key_name: CountryCode
Seq_in_index: 1
Column_name: CountryCode
Collation: A
Cardinality: 232
Sub_part: NULL
Packed: NULL
Null:
Index_type: BTREE
Comment:
Index_comment:
Visible: YES
Expression: NULL
替代
语法是 tbl_name
FROM db_name
db_name
.tbl_name
。这两个语句是等效的:
SHOW INDEX FROM mytable FROM mydb;
SHOW INDEX FROM mydb.mytable;
可选的 EXTENDED
关键字会导致输出包括 MySQL 内部使用的隐藏索引信息,这些索引对用户不可访问。
可以使用 WHERE
子句来选择使用更一般条件的行,如 第 28.8 节,“SHOW 语句扩展” 中所讨论的那样。
显示索引
返回以下字段:
-
表
表的名称。
-
非唯一
如果索引不能包含重复值,则为 0,否则为 1。
-
键名
索引的名称。如果索引是主键,则名称始终为
PRIMARY
。 -
序列号
索引中的列序列号,从 1 开始。
-
列名
列的名称。另见
表达式
列的描述。 -
排序
列在索引中的排序方式。可以是
A
(升序)、D
(降序)或NULL
(未排序)。 -
基数
索引中唯一值的估计数量。要更新该数字,请运行
ANALYZE TABLE
或(对于MyISAM
表)myisamchk -a。基数
是基于存储为整数的统计信息计算的,因此即使对于小表,该值也不是精确的。基数越高,MySQL 在执行连接时使用索引的可能性越高。 -
子部分
索引的前缀,即如果列只部分索引,则为索引的字符数,否则为
NULL
。Note前缀 限制 以字节为单位测量。然而,对于
CREATE TABLE
、ALTER TABLE
和CREATE INDEX
语句中的索引规范,前缀 长度 是以字符数为单位的非二进制字符串类型(CHAR
、VARCHAR
、TEXT
)或以字节为单位的二进制字符串类型(BINARY
、VARBINARY
、BLOB
)。在指定非二进制字符串列的前缀长度时,请注意这一点。有关索引前缀的更多信息,请参阅 第 10.3.5 节,“列索引” 和 第 15.1.15 节,“CREATE INDEX 语句”。
-
打包
指示键如何打包。
NULL
如果它不是。 -
空
包含
YES
如果列可以包含NULL
值,否则为''
。 -
索引类型
索引方法使用(
BTREE
、FULLTEXT
、HASH
、RTREE
)。 -
注释
索引的信息未在其自己的列中描述,例如
disabled
如果索引被禁用。 -
索引注释
在创建索引时提供的任何注释,带有
COMMENT
属性。 -
可见
优化器是否可以看到索引。请参阅第 10.3.12 节,“不可见索引”。
-
表达式
MySQL 支持函数键部分(请参阅函数键部分);这影响了
Column_name
和Expression
列:-
对于非函数键部分,
Column_name
指示键部分索引的列,而Expression
为NULL
。 -
对于函数键部分,
Column_name
列为NULL
,而Expression
指示键部分的表达式。
-
表索引的信息也可以从INFORMATION_SCHEMA
STATISTICS
表中获得。请参阅第 28.3.34 节,“INFORMATION_SCHEMA STATISTICS 表”。隐藏索引的扩展信息只能使用SHOW EXTENDED INDEX
获得;无法从STATISTICS
表中获得。
您可以使用mysqlshow -k db_name
tbl_name
命令列出表的索引。
SHOW INDEX
默认情况下包括表的生成的不可见键,如果它有一个。您可以通过设置show_gipk_in_create_table_and_information_schema = OFF
来抑制该信息在语句的输出中。有关更多信息,请参阅第 15.1.20.11 节,“生成的不可见主键”。