📜  mysql 在表上显示索引 - SQL (1)

📅  最后修改于: 2023-12-03 15:33:03.123000             🧑  作者: Mango

MySQL 在表上显示索引 - SQL

MySQL是一种常用的关系型数据库管理系统,其中索引是提高查询性能和优化数据库的关键因素。本文将介绍如何在MySQL表上显示索引。

通过SHOW INDEXES命令显示索引

可以使用SHOW INDEXES命令在MySQL表上显示索引。该命令将显示表中每个索引的名称、关键字、唯一性、字段名称、索引类型、索引方法和空值等信息。

SHOW INDEXES FROM table_name;

其中,table_name为要查询的表名称。此命令将返回类似以下输出:

| Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | |-------|------------|----------|--------------|-------------|-----------|-------------|----------|--------|------|------------|---------| | mytable | 0 | PRIMARY | 1 | id | A | 10000 | NULL | NULL | | BTREE | | | mytable | 1 | index_name | 1 | name | A | 10000 | NULL | NULL | YES | BTREE | |

这个表将列出mytable表中的两个索引:PRIMARY和index_name。这些索引各自支持不同的列。

通过DESCRIBE命令和SHOW CREATE TABLE命令显示索引

可以使用DESCRIBE命令和SHOW CREATE TABLE命令在MySQL表上显示索引。DESCRIBE命令可用于查看表的结构,其中包括有关列的信息(例如名称、类型、默认值、键等)。SHOW CREATE TABLE命令可用于查看表的创建语句,其中包括创建索引的语句。

与SHOW INDEXES命令相比,DESCRIBE命令和SHOW CREATE TABLE命令不提供与空值有关的信息,并且仅为每个索引提供一行输出。

DESCRIBE table_name;
SHOW CREATE TABLE table_name;

其中,table_name为要查询的表名称。这些命令将返回类似以下输出:

DESCRIBE table_name:

| Field | Type | Null | Key | Default | Extra |
|-------|------|------|-----|---------|-------|
| name | varchar(20) | YES | MUL | NULL |  |
| age | int(11) | YES |  | NULL |  |
| id | int(11) | NO | PRI | NULL | auto_increment |

SHOW CREATE TABLE table_name:

CREATE TABLE `table_name` (
  `name` varchar(20) DEFAULT NULL,
  `age` int(11) DEFAULT NULL,
  `id` int(11) NOT NULL AUTO_INCREMENT,
  PRIMARY KEY (`id`),
  KEY `index_name` (`name`)
) ENGINE=InnoDB AUTO_INCREMENT=10001 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci

这个表将列出table_name表中的两个索引:PRIMARY和index_name。PRIMARY索引是id列的主键索引。index_name索引是name列的辅助索引。

总结

本文介绍了三种查看MySQL表上所包含的索引的方法:使用SHOW INDEXES命令、DESCRIBE命令和SHOW CREATE TABLE命令。这些方法可用于查看索引名称、键、类型、空值等信息,从而帮助开发人员了解表数据和索引的结构,以优化数据库性能。