很多朋友在用mysql进行调优的时候都肯定会用到explain来看select语句的执行情况,这里简单介绍结果中两个列的含义。

1 type列

官方的说法,说这列表示的是“访问类型”,更通俗一点就是:mysql找到需要的数据行的方式。一下就是从效率最差到最好顺序分别介绍下:

All 这个就是所谓的全表扫描,没有用到任何的index,mysql就是从头到尾把整个表遍历一边,找到所需要的数据行。效率是最差的。如下图,这个表中的usertype不是索引,这个查询中没有用到任何索引,所以就出现了全表扫描的结果。

index type列中出现了index,含义仅仅是局限在扫描全表的顺序是按照索引顺序扫描的,仅仅是按索引顺序去扫描的。它的有点是避免了排序,因为索引就是已经排序好的,缺点就是要承担按照索引次序读取整张表的开销。如下,这个查询中order by id,id是这个表的索引,但是因为没有在where中出现任何的索引列,所以它也只是索引顺去扫描了全表。(这里强调一下,你的查询语句中where条件中没有索引,只是order by 的时候用了index,而且没有用limit限制,type这里显示的是all,也就是这种情况下没有limit,还是扫面全表的)

range 这个一般就是在你的where语句中出现了between或者“>”这种符号的时候会出现这个。这种范围扫描索引扫描比全表扫描要好,因为它只需要开始于索引的某一点,而结束语另一点,不用扫描全部索引。

ref 这也是一种索引访问,它返回所有匹配某个单独值的行,然而,它可能会找到多个符合条件的行,所以他应该属于查找和扫描的混合体。

const,system 当mysql能对查询的部分就行优化,并且转换成一个常量的时候,它就会使用这种访问类型了。比如你把一行的主键当做where条件放进去,那mysql就可以把它转换成一个常量,然后查询。如下图:uid是主键,作为where条件就能出现这个效率最高的查询结果。

2 extra列

extra列中出现的信息一般不是太重要,但是还是有很多信息我们可以从这里面获取到:

using index:出现这个说明mysql使用了覆盖索引,避免访问了表的数据行,效率不错!

using where:这说明服务器在存储引擎收到行后将进行过滤。有些where中的条件会有属于索引的列,当它读取使用索引的时候,就会被过滤,所以会出现有些where语句并没有在extra列中出现using where这么一个说明。

using temporary:这意味着mysql对查询结果进行排序的时候使用了一张临时表。

using filesort:这个说明mysql会对数据使用一个外部的索引排序,而不是按照表内的索引顺序进行读取。

mysql explain中的type列含义和extra列的含义相关推荐

  1. mysql key_len_浅谈mysql explain中key_len的计算方法

    mysql的explain命令可以分析sql的性能,其中有一项是key_len(索引的长度)的统计.本文将分析mysql explain中key_len的计算方法. 1.创建测试表及数据 CREATE ...

  2. mysql中的extra是什么意思_1130mysql explain中的type列含义和extra列的含义

    很多朋友在用mysql进行调优的时候都肯定会用到explain来看select语句的执行情况,这里简单介绍结果中两个列的含义. 1 type列 官方的说法,说这列表示的是"访问类型" ...

  3. mysql explain字段含义,Mysql explain中的关键字段(通俗易懂篇)

    作者:可爱猪猪 - 帅锅一枚 作者的网名很阔爱,如果喜欢本文章一定要点 喜欢 或者 打赏,拜托~ 作者一直在进步,需要你们的支持和鼓励,谢谢! 人生理想:在程序猿界混出点名堂! 请读者,认真读完这篇文 ...

  4. mysql explain中key_len值的说明

    在mysql 的explain的输出中,有个key_len的列,其数据是如何计算的呢? 在看到了淘宝的dba以前发布的博客后,我在mysql 5.6上操作一番,了解了一点. 环境准备 – 创建表. u ...

  5. mysql explain中的 “Select tables optimized away”

    今天在做SQL语句优化的时候,在explain的时候,有这样一个提示: mysql> explain SELECT max( up_start ) AS up_start FROM test W ...

  6. Mysql explain 中的extra字段 解读

    extra 是 explain 中比较重要的一个属性指标之一,标识着SQL语句的索引使用情况. 接下来 讲讲常用见的几种状态. Using filesort 这种情况是在使用 order by 关键字 ...

  7. ICMPv6协议中各种Type的详细取值范围及其含义

    在ICMPv6中的Type字段定义中,0-127为错误消息(Error messages),而128-255为信息消息(Informational messages),其中每种Type定义一种类型及其 ...

  8. mysql explain using_[MySQL] explain中的using where和using index

    1. 查看表中的所有索引 show index from modify_passwd_log;  有两个 一个是id的主键索引,一个是email_id的普通索引 2. using index表示 使用 ...

  9. mysql explain insert_mysql explain详解

    使用EXPLAIN关键字可以模拟优化器执行SQL语句,从而知道MySQL是如何处理你的SQL语句的.可以分析SQL查询语句的性能瓶颈. 使用方式 1.在 select 语句之前增加 explain 关 ...

最新文章

  1. 手机黑产为啥没支付宝的份?官方回应:犯罪分子无法突破人脸识别
  2. UE if缩进问题(转)
  3. 图像清晰度的评价及分析
  4. 容灾与备份究竟有什么区别?
  5. 谈谈考研复试的一些经验和建议
  6. ASP.NET Web Api 实现数据的分页
  7. 学习selenium所须要具备的技术
  8. android 字体描边实现,android文字描边功能的实现
  9. ENSP配置 实例一 不同VLAN间通信
  10. LVS三种请求转发方式和八种调度算法简介
  11. java opc 读取到数据块的数据_MES系统功能数据传输的介绍
  12. cookie helper.php,CookieHelper cook crud 工具类
  13. 【小小小白进行手机进行刷机测试 Ubuntu系统下安装adb工具、fastboot工具】
  14. 人工智能 猴子摘香蕉问题
  15. 免费论文查找网站:SCI-Hub(免费)、arxiv(免费)、谷歌学术镜像(免费)、知网、万方
  16. linux crontab清理脚本,crontab定时清理日志
  17. 【三星篇】三星手机实用功能软件推荐
  18. Ubuntu20.04 系统安装USB无线网卡 TL-WDN5200免驱版 安转失败不显示WiFi的一种解决方案
  19. python海龟漂亮图案代码大全_带有海龟图案的Python花
  20. ldirectord 介绍

热门文章

  1. pipe row的用法, Oracle split 函数写法.
  2. android camera分辨率设置,请问如何使用camera2设置全屏preview,要求适配所有屏幕尺寸?...
  3. ELK日志分析平台搭建全过程(自己做了测试,测试不完整因为原文章都是图片)
  4. php安装pcntl扩展
  5. 王帅:深入PHP内核(二)——SAPI探究(精辟)
  6. PHP的自动加载__autoload spl_autoload_register
  7. Yii的数值唯一性-场景与SQL
  8. java phantomjs_Java爬虫:Jsoup + Phantomjs
  9. 微信小程序小模块界面,边框带阴影
  10. php联想输入,自动联想搜索提示功能