如何查看解释中的key_len判断究竟用了哪个索引

  

<>强如何查看解释中的key_len判断究竟用了哪个索引?很多人都不太了解,今天小编为了让大家更加了解,所以给大家总结了以下内容,一起往下看吧。一定会有所收获的哦。

在一张表里有多个索引,我们,字段里条件有多个索引的值,那么究竟使用的哪个呢?

我们可以使用解释来查看,其中的key_len字段可以看得出来

比如下面这条sql

解释select * from ent_calendar_diary邮件=& # 39;xxxx # 39;和diary_id=1784;      + - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - + +   | | id select_type | | | |表分区类型possible_keys关键| | key_len | ref额外过滤| | | |行   + - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - + +   | 1 |简单| ent_calendar_diary零| | const |初选,idx_email_stime主要| | 4 | const | 1 | 100.00 |零|   + - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - +

possible_keys里面有两个索引字段,但是看key_len,是4个字节

如何查看解释中的key_len判断究竟用了哪个索引

备注,key_len只指示了在中用于条件过滤时被选中的索引列,是不包含秩序由/组

int类型并且非空是4个字节,因此上面的sql是使用的主键索引

解释select * from ent_calendar_diary邮件=& # 39;xxxx # 39;;   + - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - + +   | | id select_type | | | |表分区类型possible_keys关键| | key_len | ref额外过滤| | | |行   + - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - + +   | 1 |简单| ent_calendar_diary零| | ref | idx_email_stime | idx_email_stime | 767 | const | 111 | 100.00 |零|   + - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - + - - - - - - - +

这个是767个字节,varchar(255),非空,255 * 3 + 2正好符合,因此是使用的邮件那个普通索引

创建表“ent_calendar_diary”(   ‘diary_id int(10)无符号NOT NULL AUTO_INCREMENT,   “电子邮件”varchar(255)非空,   “标题”varchar(100)非空,   “摘要”varchar (500) NOT NULL默认& # 39;& # 39;   “少许”bigint (11) NOT NULL默认& # 39;0 & # 39;   ‘ctime int(10)无符号NOT NULL默认& # 39;0 & # 39;   主键(“diary_id”),   关键“idx_email_stime”(“电子邮件”、“少许”)   )引擎=InnoDB AUTO_INCREMENT=1809默认字符集=utf8

关于如何查看解释中的key_len判断究竟用了哪个索引就分享到这里了,当然并不止以上和大家分析的办法,不过小编可以保证其准确性是绝对没问题的。希望以上内容可以对大家有一定的参考价值,可以学以致用。如果喜欢本篇文章,不妨把它分享出去让更多的人看的到。

如何查看解释中的key_len判断究竟用了哪个索引