SHOW {INDEX | INDEXES | KEYS}
{FROM | IN} tbl_name
[{FROM | IN} db_name]
[WHERE expr]
SHOW INDEX returns table index
information. The format resembles that of the
SQLStatistics call in ODBC. This statement
requires some privilege for any column in the table.
SHOW INDEX returns the following
fields:
Table
The name of the table.
Non_unique
0 if the index cannot contain duplicates, 1 if it can.
Key_name
The name of the index. If the index is the primary key, the
name is always PRIMARY.
Seq_in_index
The column sequence number in the index, starting with 1.
Column_name
The column name.
Collation
How the column is sorted in the index. This can have values
A (ascending) or NULL
(not sorted).
Cardinality
An estimate of the number of unique values in the index.
This is updated by running ANALYZE
TABLE or myisamchk -a.
Cardinality is counted based on
statistics stored as integers, so the value is not
necessarily exact even for small tables. The higher the
cardinality, the greater the chance that MySQL uses the
index when doing joins.
Sub_part
The index prefix. That is, the number of indexed characters
if the column is only partly indexed,
NULL if the entire column is indexed.
Prefix limits are measured in bytes, whereas the prefix
length in CREATE TABLE,
ALTER TABLE, and
CREATE INDEX statements is
interpreted as number of characters for nonbinary string
types (CHAR,
VARCHAR,
TEXT) and number of bytes
for binary string types
(BINARY,
VARBINARY,
BLOB). Take this into
account when specifying a prefix length for a nonbinary
string column that uses a multibyte character set.
For additional information about index prefixes, see Section 13.1.13, “CREATE INDEX Syntax”.
Packed
Indicates how the key is packed. NULL if
it is not.
Null
Contains YES if the column may contain
NULL values and '' if
not.
Index_type
The index method used (BTREE,
FULLTEXT, HASH,
RTREE).
Comment
Information about the index not described in its own column,
such as disabled if the index is
disabled.
Index_comment
Any comment provided for the index with a
COMMENT attribute when the index was
created.
You can use
db_name.tbl_name
as an alternative to the
syntax. These two
statements are equivalent:
tbl_name FROM
db_name
SHOW INDEX FROM mytable FROM mydb; SHOW INDEX FROM mydb.mytable;
The WHERE clause can be given to select rows
using more general conditions, as discussed in
Section 21.31, “Extensions to SHOW Statements”.
You can also list a table's indexes with the mysqlshow
-k db_name
tbl_name command.