无涯教程可以使用Show Indexes语句获取表的索引信息。此声明可以写作:
mysql> SHOW INDEXES FROM table_name;
在上面的语法中,可以看到,如果想要获取表的索引,它需要指定来自关键字后的 table_name 。在执行该语句的成功执行后,它将返回当前数据库中表的索引信息。
如果想在未连接的不同数据库或数据库中获取表的索引信息,请 mysql 允许指定数据库名称show索引声明。以下声明更清楚地解释:
mysql> SHOW INDEXES FROM table_name IN database_name;
上述陈述也可以写作:
mysql> SHOW INDEXES FROM database_name.table_name;
mysql> SHOW INDEXES IN table_name FROM database_name;
或者,
mysql> SHOW KEYS FROM table_name IN database_name;
Show Index查询返回以下字段/信息:
table_name - 它包含表的名称。
non_unique - 如果索引包含重复项,则返回1。否则,它返回0。
key_name - 它是索引的名称。如果表包含主键,则索引名称始终是主要的。
seq_in_index - 它是从1开始的索引中列的序列号。
column_name - 它包含列的名称。
collation - 它提供了有关列如何在索引中排序的信息。它包含 a 表示升序的值, d 表示降序, null 表示未排序。
cardinality - 它给出了索引表中估计唯一值的唯一值,其中较高的基数代表MySQL使用索引的机会更大。
sub_part - 它是索引的前缀。如果表的所有列索引,它具有空值。当列被偏向时,它将返回索引字符的数量。
packed - 它讲述了键如何包装。否则,它返回null。
null - 它包含空白如果列没有空值;否则,它返回是。
index_type - 它包含btree,hash,rtree,fulltext等索引方法的名称
comment - 它包含在其列中未描述时的索引信息。例如,当禁用索引时,它会禁用它。
index_column - 当您使用 comment 属性创建索引时,它包含指定索引的注释。
visible - 它包含是如果索引对查询优化器可见,而且如果没有,则包含否。
Expression - mysql 8.0支持 functional关键部分,影响表达式 column_name 列。无涯教程可以更清楚地了解它:
在这里,将创建一个表 student_info ,其中包含studentid,name,age,mobile和email详细信息。执行以下命令以创建表:
CREATE TABLE `student_info` ( `studentid` int NOT NULL AUTO_INCREMENT, `name` varchar(45) DEFAULT NULL, `age` varchar(3) DEFAULT NULL, `mobile` varchar(20) DEFAULT NULL, `email` varchar(25) DEFAULT NULL, PRIMARY KEY (`studentid`), UNIQUE KEY `email_UNIQUE` (`email`) )
接下来,无涯教程通过以下命令在此表上创建索引:
mysql> CREATE INDEX mobile ON student_info (mobile) INVISIBLE; mysql> CREATE INDEX name ON student_info (name) COMMENT 'Student Name';
现在,执行返回sudent_info表中的所有索引信息的以下命令:
mysql> SHOW INDEXES FROM student_info;
将获得以下输出:
无涯教程可以使用 过滤索引信息子句。以下语句可用于过滤索引信息:
Mysql> SHOW INDEXES FROM table_name where condition;
如果要只能获得不可见的索引,请执行以下命令:
mysql> SHOW INDEXES FROM student_info WHERE visible = 'NO';
它将提供以下输出:
祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)