MySQL 中的 SHOW INDEX、SHOW INDEXES 和 SHOW KEYS 有什么区别?
mysqlmysqli database更新于 2024/2/6 10:57:00
show index、show indexes 和 show keys 之间没有区别,含义差不多。
首先我们创建一个表 −
mysql> create table DemoTable1549 -> ( -> EmployeeId int NOT NULL AUTO_INCREMENT PRIMARY KEY, -> EmployeeName varchar(20) -> ); Query OK, 0 rows affected (0.82 sec)
以下是创建索引的查询 −
mysql> create index name_index1 on DemoTable1549(EmployeeName); Query OK, 0 rows affected (0.41 sec) Records: 0 Duplicates: 0 Warnings: 0
以下是 SHOW INDEX 的查询 −
mysql> show index from DemoTable1549;
这将产生以下输出 −
+---------------+------------+-------------+--------------+--------------+-----------+-------------+----------+--------+------+------------+---------+---------------+---------+ | Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment | Visible | +---------------+------------+-------------+--------------+--------------+-----------+-------------+----------+--------+------+------------+---------+---------------+---------+ | demotable1549 | 0 | PRIMARY | 1 | EmployeeId | A | 0 | NULL | NULL | | BTREE | | | YES | | demotable1549 | 1 | name_index1 | 1 | EmployeeName | A | 0 | NULL | NULL | YES | BTREE | | | YES | +---------------+------------+-------------+--------------+--------------+-----------+-------------+----------+--------+------+------------+---------+---------------+---------+ 2 rows in set (0.17 sec)
这是 SHOW INDEXES 的查询 −
mysql> show indexes from DemoTable1549;
这将产生以下输出 −
+---------------+------------+-------------+--------------+--------------+-----------+-------------+----------+--------+------+------------+---------+---------------+---------+ | Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment | Visible | +---------------+------------+-------------+--------------+--------------+-----------+-------------+----------+--------+------+------------+---------+---------------+---------+ | demotable1549 | 0 | PRIMARY | 1 | EmployeeId | A | 0 | NULL | NULL | | BTREE | | | YES | | demotable1549 | 1 | name_index1 | 1 | EmployeeName | A | 0 | NULL | NULL | YES | BTREE | | | YES | +---------------+------------+-------------+--------------+--------------+-----------+-------------+----------+--------+------+------------+---------+---------------+---------+ 2 rows in set (0.00 sec)
这是实现 SHOW KEYS 的查询 −
mysql> show keys from DemoTable1549;
这将产生以下输出 −
+---------------+------------+-------------+--------------+--------------+-----------+-------------+----------+--------+------+------------+---------+---------------+---------+ | Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment | Visible | +---------------+------------+-------------+--------------+--------------+-----------+-------------+----------+--------+------+------------+---------+---------------+---------+ | demotable1549 | 0 | PRIMARY | 1 | EmployeeId | A | 0 | NULL | NULL | | BTREE | | | YES | | demotable1549 | 1 | name_index1 | 1 | EmployeeName | A | 0 | NULL | NULL | YES | BTREE | | | YES | +---------------+------------+-------------+--------------+--------------+-----------+-------------+----------+--------+------+------------+---------+---------------+---------+ 2 rows in set (0.00 sec)