MySQL - 显示索引

MySQL - 显示索引 首页 / MySQL入门教程 / MySQL - 显示索引

无涯教程可以使用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;

Note: 有人指出,索引和键都是索引的同义词,也是来自关键字的同义词。因此,还可以使用以下show indexes语句:

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    -  它包含列的名称。

collat​​ion               -  它提供了有关列如何在索引中排序的信息。它包含 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 列。无涯教程可以更清楚地了解它:

  • 对于函数部件,表达式列表示关键部分的表达式,column_name表示null。
  • 对于非函数部分,表达式表示null,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

过滤索引信息

无涯教程可以使用 过滤索引信息子句。以下语句可用于过滤索引信息:

Mysql> SHOW INDEXES FROM table_name where condition;

例子

如果要只能获得不可见的索引,请执行以下命令:

mysql> SHOW INDEXES FROM student_info WHERE visible = 'NO';

它将提供以下输出:

mysql show indexes

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

Nginx核心知识150讲 -〔陶辉〕

分布式技术原理与算法解析 -〔聂鹏程〕

图解 Google V8 -〔李兵〕

分布式系统案例课 -〔杨波〕

Go 并发编程实战课 -〔晁岳攀(鸟窝)〕

乔新亮的CTO成长复盘 -〔乔新亮〕

技术面试官识人手册 -〔熊燚(四火)〕

手把手带你写一个Web框架 -〔叶剑峰〕

玩转Vue 3全家桶 -〔大圣〕

好记忆不如烂笔头。留下您的足迹吧 :)