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

(1)explain之select_type和table介绍

sql:SQL优化知识点记录(三)_第1张图片

简单的查询类型是:simple

sql:SQL优化知识点记录(三)_第2张图片

 sql:SQL优化知识点记录(三)_第3张图片

外层 primary,括号里subquery

sql:SQL优化知识点记录(三)_第4张图片

 用到了临时表:derivedsql:SQL优化知识点记录(三)_第5张图片

 sql:SQL优化知识点记录(三)_第6张图片

sql:SQL优化知识点记录(三)_第7张图片 

 

(2)explain之select_type介绍

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

sql:SQL优化知识点记录(三)_第8张图片

sql:SQL优化知识点记录(三)_第9张图片 

 

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

sql:SQL优化知识点记录(三)_第10张图片 

 sql:SQL优化知识点记录(三)_第11张图片

sql:SQL优化知识点记录(三)_第12张图片

 

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

sql:SQL优化知识点记录(三)_第13张图片 

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

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

sql:SQL优化知识点记录(三)_第14张图片

 ref:通过非唯一性索引,可以返回很多行,比如下面通过col1(名字查询),可能返回很多行,所以type就是refsql:SQL优化知识点记录(三)_第15张图片

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

sql:SQL优化知识点记录(三)_第16张图片

 index:安索引查询

sql:SQL优化知识点记录(三)_第17张图片

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

sql:SQL优化知识点记录(三)_第18张图片

 

(3)explain之possible_keys和key的介绍

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

sql:SQL优化知识点记录(三)_第19张图片

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

sql:SQL优化知识点记录(三)_第20张图片 

 理论上possible_keys没有用到,实际key也没有用到sql:SQL优化知识点记录(三)_第21张图片

 

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

sql:SQL优化知识点记录(三)_第22张图片

 (4)explain之key_len介绍

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

sql:SQL优化知识点记录(三)_第23张图片 

 

 

 

你可能感兴趣的:(数据库知识点总结,sql,数据库)