Show Indexes For A Table In MySQL
When describing a table, such as users
:
> describe users;
+------------+-----------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+-----------------------+------+-----+---------+----------------+
| id | mediumint(8) unsigned | NO | PRI | NULL | auto_increment |
| first_name | varchar(80) | NO | | NULL | |
| last_name | varchar(80) | NO | | NULL | |
| email | varchar(80) | NO | UNI | NULL | |
+------------+-----------------------+------+-----+---------+----------------+
We can see in the Key
column that there's a primary key and a unique key
for this table on id
and email
, respectively.
These keys are indexes. To get more details about each of the indexes on
this table, we can use the
show indexes
command.
> show indexes in users;
+-------+------------+--------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+
| Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type |
+-------+------------+--------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+
| users | 0 | PRIMARY | 1 | id | A | 0 | NULL | NULL | | BTREE |
| users | 0 | unique_email | 1 | email | A | 0 | NULL | NULL | | BTREE |
+-------+------------+--------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+
Tweet