SHOW INDEX语句
SHOW [EXTENDED ] {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 : 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 mytableFROM mydb;SHOW INDEX FROM mydb.mytable;
可选EXTENDED
关键字使输出包含有关MySQL内部使用的隐藏索引的信息,用户无法访问这些隐藏索引。
WHERE
条款可以给出使用更一般的条件来选择行,如在讨论第25.48,“扩展到SHOW语句”。
SHOW INDEX
返回以下字段:
Table
表的名称。
Non_unique
如果索引不能包含重复项,则为0;如果可以,则为1。
Key_name
索引名称。如果索引是主键,则名称始终为
PRIMARY
。Seq_in_index
索引中的列序号,从1开始。
Column_name
列名。另请参见该
Expression
列的说明。Collation
列如何在索引中排序。它可以具有值
A
(升序),D
(降序)或NULL
(未排序)。Cardinality
索引中唯一值数量的估计。要更新此数字,请运行
ANALYZE TABLE
或(对于MyISAM
表)运行myisamchk -a。Cardinality
基于存储为整数的统计信息进行计数,因此即使对于小型表,该值也不一定精确。基数越高,MySQL在进行联接时使用索引的机会越大。Sub_part
索引前缀。也就是说,
NULL
如果对整个列进行了索引,则如果仅对该列进行部分索引,则为索引字符的数量。注意
前缀限制以字节为单位。然而,前缀长度为索引规范
CREATE TABLE
,ALTER TABLE
和CREATE INDEX
语句解释为非二进制串类型的字符数(CHAR
,VARCHAR
,TEXT
对于二进制串类型),并且字节数(BINARY
,VARBINARY
,BLOB
)。为使用多字节字符集的非二进制字符串列指定前缀长度时,请考虑到这一点。有关索引前缀的更多信息,请参见“列索引”和“ CREATE INDEX语句”。
Packed
指示密钥的包装方式。
NULL
如果不是这样。Null
包含
YES
是否该列可能包含NULL
值,''
否则包含。Index_type
使用的索引方法(
BTREE
,FULLTEXT
,HASH
,RTREE
)。Comment
关于索引的信息未在其自己的列中描述,例如
disabled
是否禁用了索引。Index_comment
COMMENT
创建索引时,为索引提供的任何注释均带有属性。Visible
索引是否对优化器可见。请参见“不可见索引”。
Expression
MySQL 8.0.13和更高版本支持功能性关键部分(请参见 Functional Key Parts),这会影响
Column_name
和Expression
列:- 对于非功能键部分,
Column_name
指示由键部分索引的列,且Expression
为NULL
。 - 对于功能键部件,
Column_name
列为NULL
并Expression
指示键部件的表达式。
- 对于非功能键部分,
有关表索引的信息也可从INFORMATION_SCHEMA
STATISTICS
表中获得。请参见“ INFORMATION_SCHEMA STATISTICS表”。有关隐藏索引的扩展信息仅可使用SHOW EXTENDED INDEX
;它不能从STATISTICS
表中获得。
您可以使用mysqlshow -k db_name
tbl_name
命令列出表的索引。