mysql中explain各字段的解释及优化

这里写图片描述

1,id,查询执行的先后顺序
(一般有union,或者子查询的时候,就显示1,2了)
2,select_type 查询类型
simple 简单的。
还有两种就是union和带子查询的(子查询的外层查询叫primary)。
3,table 不多说了,就是用到了哪几个表。
4,type 很重要
我这儿是ref (键等于多少),这是排第二的优秀。
排第一的优秀是const,就是最多有一个匹配行。我理解的就是主键=某值。
我这儿有个问题没想明白,上图中我的invest_num也是unique索引,为什么是ref而不是const呢。
以上两种类型都很好。
All最不好,全盘扫描数据表,是需要优化的对象。
还有其他不是很常见的几个比如,range – (uid in(1,2,3))
index_merge unique_subquery 等
(有一种很牛逼的是system,,表仅有一行,这是const类型的特列,平时不会出现,这个也可以忽略不计)
5,possible_keys 提示使用哪个索引会在该表中找到行,不太重要
6,6 keys MYSQL使用的索引,简单且重要
7,key_len MYSQL使用的索引长度
和字符集有关,比如是utf8 占3个字节,索引定义char(20),那key_len就是60.
8, ref ref列显示使用哪个列或常数与key一起从表中选择行。
9, rows 显示MYSQL执行查询的行数,简单且重要,数值越大越不好,说明没有用好索引
10 ,Extra 该列包含MySQL解决查询的详细信息。
完毕。
这个链接里特别强调的一句,,驱动表的定义。。。觉得有点疑惑,,有兴趣的小盆友帮忙点击看一下,留言谈论一下驱动表,谢谢。https://blog.csdn.net/solmyr_biti/article/details/54293492

猜你喜欢

转载自blog.csdn.net/baiyunwansui/article/details/81281952