mysql show index from table 各参数含义

一:介绍MySQL SHOW INDEXS 命令

查询一个表中的索引,我们可以像下面这样使用SHOW INDEXS语句

 

SHOW INDEXES FROM table_name;

获取表的索引,注意要在FROM关键字后指定表名,之后上面的语句就会返回与当前数据库中的表关联的索引信息。

同时也可以指定数据库的名字

 

SHOW INDEXES FROM table_name 
IN database_name;

或者是这样的

 

SHOW INDEXES FROM database_name.table_name;

二:MySQL SHOW INDEXES 举例

首先创建一个命名为contacts的表,然后用这个表来展示SHOW INDEXS命令的使用

 

CREATE TABLE contacts(
    contact_id INT AUTO_INCREMENT,
    first_name VARCHAR(100) NOT NULL,
    last_name VARCHAR(100) NOT NULL,
    email VARCHAR(100),
    phone VARCHAR(20),
    PRIMARY KEY(contact_id),
    UNIQUE(email),
    INDEX phone(phone) INVISIBLE,
    INDEX name(first_name, last_name) comment 'By first name and/or last name'
);

使用下面的命令就能返回contacts表所有的索引信息

 

SHOW INDEXES FROM contacts;

结果如下:

 

 

下面我们一起了解下返回的这张表的含义:

1.Table: 表名

2.Non_unique: 如果索引不能包括重复值则为0,如果可以则为1。也就是平时所说的唯一索引。

3.Key_name 索引名称,如果名字相同则表明是同一个索引,而并不是重复,比如上图中的第四、五条数据,索引名称都是name,其实是一个联合索引。

4.Seq_in_index 索引中的列序列号,从1开始。上图中的四、五条数据,Seq_in_index一个是1一个是2,就是表明在联合索引中的顺序,我们就能推断出联合索引中索引的前后顺序。

5.Column_name 索引的列名。

6.Collation指的是列以什么方式存储在索引中,大概意思就是字符序。

7.Cardinality 是基数的意思,表示索引中唯一值的数目的估计值。我们知道某个字段的重复值越少越适合建索引,所以我们一般都是根据Cardinality来判断索引是否具有高选择性,如果这个值非常小,那就需要重新评估这个字段是否适合建立索引。

8.Sub_part 前置索引的意思,如果列只是被部分地编入索引,则为被编入索引的字符的数目。如果整列被编入索引,则为NULL。

9.Packed 指示关键字如何被压缩。如果没有被压缩,则为NULL。压缩一般包括压缩传输协议、压缩列解决方案和压缩表解决方案。

10.Null 如果列含有NULL,则含有YES。

11.Index_type表示索引类型,Mysql目前主要有以下几种索引类型:FULLTEXT,HASH,BTREE,RTREE。

12.Comment Index_comment 注释的意思。

总结下,这篇文章主要是探讨了MySQL SHOW INDEX 命令的使用,建议大家亲自运行下文中代码。



 

  • 7
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值