Mysql 简明教程
MySQL - Show Indexes
MySQL 索引是一种特殊查找表类型,用于简化数据库中的数据检索。它指向数据库中的实际数据。
MySQL 允许在表中的一个或多个列上创建不同类型的索引。它们有:
-
Primary Key Index
-
Unique Index
-
Simple Index
-
Composite Index
-
Implicit Index
为了检查表中是否定义了这些索引,MySQL 提供了 SHOW INDEX 语句。
The MySQL SHOW INDEX Statement
MySQL 的 SHOW INDEX 语句用于列出表索引信息。
Example
在此示例中,我们使用以下 CREATE TABLE 查询创建一个新表 CUSTOMERS ,并向其某一列添加一个 PRIMARY KEY 索引 −
CREATE TABLE CUSTOMERS (
ID INT NOT NULL,
NAME VARCHAR (20) NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR (25),
SALARY DECIMAL (18, 2),
PRIMARY KEY(ID),
INDEX(NAME)
);
现在,我们可以使用以下 SHOW INDEX 查询显示 CUSTOMERS 表上存在的索引 −
SHOW INDEX FROM CUSTOMERS\G
Output
垂直输出将显示为 −
*************************** 1. row ************************
Table: customers
Non_unique: 0
Key_name: PRIMARY
Seq_in_index: 1
Column_name: ID
Collation: A
Cardinality: 0
Sub_part: NULL
Packed: NULL
Null:
Index_type: BTREE
Comment:
Index_comment:
Visible: YES
Expression: NULL
*************************** 2. row ************************
Table: customers
Non_unique: 1
Key_name: NAME
Seq_in_index: 1
Column_name: NAME
Collation: A
Cardinality: 0
Sub_part: NULL
Packed: NULL
Null:
Index_type: BTREE
Comment:
Index_comment:
Visible: YES
Expression: NULL
2 rows in set (0.01 sec)
With IN Clause
在此示例中,让我们首先使用以下 CREATE INDEX 查询对 CUSTOMERS 表的 AGE 列创建索引 −
CREATE INDEX AGE_INDEX ON CUSTOMERS (AGE);
你还可以通过指定数据库名称来检索信息 −
SHOW INDEX IN CUSTOMERS FROM sample\G
Output
输出将与以上相同 −
*************************** 1. row ***************************
Table: customers
Non_unique: 0
Key_name: PRIMARY
Seq_in_index: 1
Column_name: ID
Collation: A
Cardinality: 0
Sub_part: NULL
Packed: NULL
Null:
Index_type: BTREE
Comment:
Index_comment:
Visible: YES
Expression: NULL
*************************** 2. row ***************************
Table: customers
Non_unique: 1
Key_name: NAME
Seq_in_index: 1
Column_name: NAME
Collation: A
Cardinality: 0
Sub_part: NULL
Packed: NULL
Null:
Index_type: BTREE
Comment:
Index_comment:
Visible: YES
Expression: NULL
2 rows in set (0.01 sec)
With WHERE Clause
由于索引以表格格式显示,因此我们可以将 WHERE 子句与 SHOW INDEX 语句配合使用,以检索与给定条件匹配的指定索引。
SHOW INDEX IN CUSTOMERS WHERE Column_name = 'NAME'\G
Output
将显示 NAME 列上创建的索引 −
*************************** 1. row ************************
Table: customers
Non_unique: 1
Key_name: NAME
Seq_in_index: 1
Column_name: NAME
Collation: A
Cardinality: 0
Sub_part: NULL
Packed: NULL
Null:
Index_type: BTREE
Comment:
Index_comment:
Visible: YES
Expression: NULL
1 row in set (0.00 sec)