查看索引
要查看一个表有哪些索引,可以使用 MySQL 的 SHOW INDEX
命令或者查询信息模式的系统表。以下是两种方法:
使用 SHOW INDEX
使用 SHOW INDEX
可以列出指定表的索引信息。语法如下:
SHOW INDEX FROM table_name;
其中 table_name
是你要查看索引的表的名称。
示例:
假设你有一个表 products
,你可以通过以下方式查看它的索引:
SHOW INDEX FROM products;
这会列出 products
表的所有索引信息,包括索引名、列名、索引类型、索引方法等。
使用信息模式查询
另一种方法是查询 MySQL 的信息模式系统表 information_schema.STATISTICS
,这种方法更加灵活,并且可以与其他条件查询结合使用。
示例:
SELECT *
FROM information_schema.STATISTICS
WHERE table_schema = 'your_database' AND table_name = 'your_table';
将 your_database
替换为你的数据库名称,your_table
替换为你要查看索引的表名。这会列出指定表的所有索引信息,包括索引名、列名、索引顺序、索引类型等。
输出结果
- Table:表名,即索引所属的表是
test_user
。 - Non_unique:表示索引是否可以包含重复值。在你的情况下,
idx_name_age
是一个非唯一索引,因此为 1。 - Key_name:索引的名称,这里是
idx_name_age
。 - Seq_in_index:索引中的列的顺序。对于
idx_name_age
,有两行,分别表示索引中的第一个列和第二个列。 - Column_name:索引的列名。第一行对应
name
列,第二行对应age
列。 - Collation:列的排序规则。
- Cardinality:表示索引中唯一值的估计数量。
- Sub_part:表示列的子部分长度。对于你的索引而言,这个值为 NULL,表示整个列都被包含在索引中。
- Packed:在存储引擎内部使用的索引格式。
- Null:表示列是否可以包含 NULL 值。
- Index_type:索引的类型,这里是 BTREE,即 B-tree 索引结构。
- Comment:其他相关信息。