sql:SQL优化知识点记录(三)

(1)explain之select_type和table介绍

简单的查询类型是:simple

 

外层 primary,括号里subquery

 用到了临时表:derived

 

(2)explain之type介绍

trpe反映的结果与我们sql是否优化过,是否是最佳状态息息相关

最简单的查询啥都没有改type就是all:表明的的检索是全表扫描

 

const:通过id查询,有索引查询很快  t1查询完之后作为一张临时表d1中只有一条记录,所以在查询就到了system级别

 eq_ref:比如员工表和部门表,员工表的的CEO属于的部门(总裁办)在员工表只出现一次,所以就是eq_ref

但是从部分表搜索总裁办这个唯一的部门需要全表扫描是All

 ref:通过非唯一性索引,可以返回很多行,比如下面通过col1(名字查询),可能返回很多行,所以type就是ref

 range:使用了范围查询,type就是range

 index:安索引查询

all:将全表查询一遍 效率最慢 type为all ,存在全表扫描,建议优化sql

(3)explain之possible_keys和key的介绍

他们两个决定了你是否使用大了索引,也用来判断索引是否失效,和在多个索引竞争的时候mysql最后到底用到了那个索引。

比如:t1表 可能有2个索引l理论上可能用到,但是最终用到的key索引是idx_t1  

 理论上possible_keys没有用到,实际key也没有用到

这里查询显示理论上没有用到索引,但是实际上用到了索引

 (4)explain之key_len介绍

查询的使用使用的索引条件越多key_len越大 

猜你喜欢

转载自blog.csdn.net/dengfengling999/article/details/132520603
今日推荐