mysql show index from 语句详解

mysql数据库系统中,可以使用show index from 语句可以指定查看表的索引信息。

语法:show index from table_name ;

显示信息如下:

 

Table:数据库表名

Non_unique:表示是否为唯一索引,为0表示该索引是唯一索引,该列的值不允许重复;为1则该索引不是唯一索引。

Key_name:表示索引名称

Seq_in_index:表示索引的顺序,默认从1开始,如果是组合索引,则遵循最左优先,第1个索引字段为1,第2个索引字段为2,第3个索引字段为3,以此类推。

Column_name:索引字段名称

Collation:表示索引排序形式,默认为A,表示为升序(对应Asc关键字),为D表示为降序(对应Desc关键字),为Null则表示无排序。

Cardinality:表示索引中唯一值的数目的估算值。基数越大,当进行联合索引查询时,mysql使用该索引的机会就越大,当某个字段的重复值越少越适合建索引,所以我们可以根据Cardinality来判断索引是否具有高选择性,如果这个值非常小,那该索引的效率不会很高。可以通过analyze table table_name语句来估算得到指定表的索引Cardinality值。

Sub_part:表示索引的前缀,也就是索引的范围,如果在设置索引时指定length(n),create index index_name on table_name(column(length)); 时,sub_part的值对应length,表示该索引匹配内容仅为该字段的前n个字符。

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

Null:表示该字段是否允许为Null,为YES表示该字段的值允许为null,为空表示该字段的值不允许为null

Index_type:表示索引类型,目前mysql索引类型主要有FULLTEXTHASHBTREERTREE

Comment:注释内容

Index_comment:索引的注释内容

Visible:表示索引是否对优化器可见,从mysql 8.0版本开始支持不可见索引(invisible index)隐式索引。不可见索引是不被mysql优化器使用的,但是优化器会正常维护它。

使用场景:1、非主键上的索引;2、测试删除索引对性能的影响,而无需进行破坏性更改(在对数据量大的表进行创建和删除索引时,通常会很慢。可以设置invisible/visible属性来禁用/启用索引,验证创建索引和去掉索引的差异)

Expression:表示索引表达式

 

posted @ 2024-03-12 22:46  西夏一品唐  阅读(571)  评论(0编辑  收藏  举报