mysql如何查看表的索引

200 阅读2分钟

「这是我参与2022首次更文挑战的第21天,活动详情查看:2022首次更文挑战」。

一、mysql中如何查看索引

在mysql中使用show index from table查看表的索引情况。下图即执行后的情况。

image.png

二、各个字段的含义

  1. table表名
  2. Non_unique 如果索引不能包括重复值则为0,如果可以则为1。也就是我们平时所说的唯一索引。
  3. Key_name 索引名称,如果名字相同则表明是同一个索引,而并不是重复,名字相同的是联合索引。
  4. Seq_in_index 索引中的列序列号,从1开始。表明在联合索引中的顺序,我们可以通过它推断出联合索引中索引的前后顺序。
  5. Column_name 索引的列名。
  6. Collation 列以什么方式存储在索引中。在MySQL中,有值‘A’(升序)或NULL(无分类)。
  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:注释的意思。

三、总结

一般我们要优化sql时,会查看表中是否有索引,如果有索引,那么尝试让sql走索引。或者是建立了索引之后,用于查看建立这个索引是否合理。