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

本文深入讲解了SQL查询中的select_type、type、possible_keys和key_len,以及如何通过优化提升查询效率。

(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越大 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

喵俺第一专栏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值