SHOW INDEX语句
SHOW [EXTENDED ] {INDEX |INDEXES |KEYS } {FROM |IN } tbl_name [{FROM |IN } db_name] [WHERE expr]
SHOW INDEX返回表索引信息。格式类似于SQLStatisticsODBC 中的调用格式。该语句要求对表中的任何列都具有一定的特权。
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_namedb_nametbl_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_commentCOMMENT创建索引时,为索引提供的任何注释均带有属性。Visible索引是否对优化器可见。请参见“不可见索引”。
ExpressionMySQL 8.0.13和更高版本支持功能性关键部分(请参见 Functional Key Parts),这会影响
Column_name和Expression列:- 对于非功能键部分,
Column_name指示由键部分索引的列,且Expression为NULL。 - 对于功能键部件,
Column_name列为NULL并Expression指示键部件的表达式。
- 对于非功能键部分,
有关表索引的信息也可从INFORMATION_SCHEMASTATISTICS表中获得。请参见“ INFORMATION_SCHEMA STATISTICS表”。有关隐藏索引的扩展信息仅可使用SHOW EXTENDED INDEX;它不能从STATISTICS表中获得。
您可以使用mysqlshow -k db_nametbl_name命令列出表的索引。
