SHOW {INDEX | INDEXES | KEYS}
{FROM | IN} tbl_name
[{FROM | IN} db_name]
[WHERE expr]
SHOW INDEX
返回表索引信息。格式类似于
SQLStatistics
ODBC 中的调用格式。此语句需要对表中的任何列具有一定的权限。
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:
*************************** 2. row ***************************
Table: city
Non_unique: 1
Key_name: CountryCode
Seq_in_index: 1
Column_name: CountryCode
Collation: A
Cardinality: 4188
Sub_part: NULL
Packed: NULL
Null:
Index_type: BTREE
Comment:
Index_comment:
语法
的替代方法是. . 这两个语句是等价的:
tbl_name
FROM db_name
db_name
tbl_name
SHOW INDEX FROM mytable FROM mydb;
SHOW INDEX FROM mydb.mytable;
该WHERE
子句可以使用更一般的条件来选择行,如
第 21.9 节“SHOW 语句的扩展”中所讨论的。
SHOW INDEX
返回以下字段:
Table
表的名称。
Non_unique
如果索引不能包含重复项,则为 0,如果可以,则为 1。
Key_name
索引的名称。如果索引是主键,则名称始终是
PRIMARY
。Seq_in_index
索引中的列序号,从 1 开始。
Column_name
列的名称。
Collation
列在索引中的排序方式。这可以有值
A
(升序)或NULL
(未排序)。Cardinality
索引中唯一值数量的估计。要更新此数字,请运行
ANALYZE TABLE
或(对于MyISAM
表) myisamchk -a。Cardinality
基于存储为整数的统计信息进行计数,因此即使对于小表,该值也不一定准确。基数越高,MySQL 在进行连接时使用索引的机会就越大。Sub_part
索引前缀。也就是说,如果列仅被部分索引,则索引字符数,
NULL
如果整个列被索引。笔记前缀限制以字节为单位。但是,、 和语句中索引规范的前缀长度被解释为非二进制字符串类型( 、 、 )的字符数和二进制字符串类型( 、 、 ) 的 字节数。在为使用多字节字符集的非二进制字符串列指定前缀长度时,请考虑这一点。
CREATE TABLE
ALTER TABLE
CREATE INDEX
CHAR
VARCHAR
TEXT
BINARY
VARBINARY
BLOB
有关索引前缀的其他信息,请参阅 第 8.3.4 节,“列索引”和 第 13.1.13 节,“CREATE INDEX 语句”。
Packed
指示密钥的打包方式。
NULL
如果不是。Null
YES
如果列可能包含 值NULL
,则包含,''
如果不包含。Index_type
使用的索引方法 (
BTREE
,FULLTEXT
,HASH
,RTREE
)。Comment
有关未在其自己的列中描述的索引的信息,例如
disabled
索引是否被禁用。Index_comment
COMMENT
创建索引时为具有属性的 索引提供的任何注释 。
有关表索引的信息也可从
INFORMATION_SCHEMA
STATISTICS
表中获得。请参阅
第 21.3.22 节,“INFORMATION_SCHEMA 统计表”。
您可以使用mysqlshow -k
db_name
tbl_name
命令
列出表的索引。