📅  最后修改于: 2023-12-03 15:09:10.920000             🧑  作者: Mango
在 MySQL 中,通过索引可以提高查询的速度。但是,如果使用不当,也有可能影响性能。因此,了解哪些列被索引了是非常重要的。
以下是一些方法可以用来查看哪些列被索引了。
SHOW INDEX
命令SHOW INDEX FROM table_name;
其中,table_name
是你想要查看索引的表名。
这个命令将返回一个结果集,其中包含了你所查询的表的索引信息。你可以通过查看 Key_name
来确认哪些列被索引了。
INFORMATION_SCHEMA
数据库SELECT DISTINCT INDEX_NAME, COLUMN_NAME
FROM INFORMATION_SCHEMA.STATISTICS
WHERE TABLE_NAME = 'table_name'
AND INDEX_NAME != 'PRIMARY';
同样,table_name
是你想要查询的表名。
这个命令将返回一个结果集,其中包含表的所有索引列。如果列有多个索引,则会出现多行。
DESCRIBE
命令DESCRIBE table_name;
这个命令将返回表的结构,其中包含了每一列的属性。如果该列被索引,则在 Key
列会显示 MUL
(表示该列是一个多重索引的一部分)或 PRI
(表示主键索引)。
SHOW CREATE TABLE
命令SHOW CREATE TABLE table_name;
这个命令将返回一个 CREATE TABLE
语句。如果该表有索引,那么在语句中会显示 KEY
或 PRIMARY KEY
。你可以通过查看这个语句来确认哪些列被索引了。
总结 以上四种方法都可以用来查看哪些列被索引了。推荐使用第一种和第二种方法,因为它们可以直接查询出索引信息。第三种方法可以用来检查表的结构。第四种方法则是一种备选方案。