目录

执行计划参数与解释

1.id        表示SQL执行顺序

2.select_type        表示查询中每个select子句的类型

1.SIMPLE

2.PRIMARY

3.SUBQUERY

4.DERIVED

5.UNION

6.UNION RESULT

3.table        显示这一步所访问的表名称

4.type        对表的访问方式

1.ALL

2.index

3.range

4.ref

5.eq_ref

6.const

7.system

5.possible_keys        列出涉及到的字段上存在的索引

6.key        实际使用的索引

7.key_len        表示索引使用的字节数,根据这个只可以判断索引的使用情况

8.ref        显示索引的哪一列被使用了

9.rows        找到所需记录所需要的行数

10.extra        对查询所获的结果集排序的结果

using filesort

using index

using tempporary

using where


mysql执行计划就是解释当mysql执行查询语句的时候是如何在数据库中执行的、相关表是如何连接的、连接次序、有哪些索引和索引的具体使用情况、每个表的扫描数据量等等

可以通过这些数据来分析selelct语句的执行情况,从而对select语句进行优化

用法

explain +语句

执行计划参数与解释

我们可以看到参数有id,select_type,table,partition,type,possible_keys,key,key_len,ref,rows,filtered,Extra参数

1.id        表示SQL执行顺序

表示SQL执行的顺序,具体是根据一下规则

当id相同时,执行顺序由上至下

如果是子查询,id的序号会递增,id的值越大执行优先级越高,越先被执行

2.select_type        表示查询中每个select子句的类型

主要作用是区分普通查询、联合查询、子查询等复杂查询

1.SIMPLE

简单的select查询,查询中不包含子查询或者union

2.PRIMARY

查询中包含然和复杂的字部分嘴歪成查询则被标记为primary(嵌套查询的外部)

3.SUBQUERY

在select或where列表中包含了子查询

4.DERIVED

在from列表中包含子查询被标记为derived(衍生),mysql或递归执行这些子查询,将结果放在临时表里

5.UNION

若第二个select出现在union之后,则被标记为union,若union宝还在from子句的子查询中,外层select将被标记为drived

6.UNION RESULT

从union表获取结果的select

3.table        显示这一步所访问的表名称

4.type        对表的访问方式

常用的类型有:ALL、index、range、ref、eq_ref、const、system(从左到右,性能从差到好)

1.ALL

MySQL将遍历全表以找到匹配的行(遍历所有的记录)

2.index

index与ALL区别为index类型只遍历索引树(遍历所有的索引)

3.range

只检索给定范围内的行,使用一个索引来选择行(between,>,<)(可能使用多个索引)

4.ref

表示非唯一索引扫描,返回所有匹配的值(仅用一个索引,并且可能会回表)

5.eq_ref

类似ref,区别就在于使用的索引是唯一索引,对于每个索引的值,表中只有一条记录匹配(使用primary key或者unique key作为关联条件)(仅用一个索引,并且可能会回表)

6.const

通过索引一次命中,匹配一行数据(也就是说通过索引一次就找到了又且仅有一条的数据)

7.system

表中只有一行记录,相当于系统表(也就是说这个表里只有一条数据,一次就找到了数据)

5.possible_keys        列出涉及到的字段上存在的索引

查询涉及到的字段上存在的索引,索引将会被列出,但是不一定被查询实际使用

6.key        实际使用的索引

如果为NULL,则没有使用索引

7.key_len        表示索引使用的字节数,根据这个只可以判断索引的使用情况

表示用到所有的索引的字节数之和(?),key_len越小,说明索引效果越好

8.ref        显示索引的哪一列被使用了

如果可能,是一个常量const

9.rows        找到所需记录所需要的行数

10.extra        对查询所获的结果集排序的结果

using filesort

表示mysql对结果集进行外部排序,不能通过索引顺序达到排序效果,一般有的话都建议优化去掉,因为这样的查询对cou资源消耗大,延时大(不根据索引排序)

using index

覆盖索引扫描,表示查询在索引树中就可以查找所需数据,不用扫描表数据文件,往往说明性能不错(根据索引就能排序)

using tempporary

查询有使用临时表,一般出现于排序,分组和多表join的情况,查询效率不高,建议优化(使用临时表)

using where

sql使用了where过滤,效率较高

参考文章

MySQL中SQL执行计划,你理解了吗?

膜拜!华为大牛透彻讲解Java面试100道必考题,不管你工作几年,都得看看!现在免费分享给大家!_哔哩哔哩_bilibili

MySQL Explain详解 - 杰克思勒(Jacksile) - 博客园

mysql的sql执行计划详解_360linker-CSDN博客_sql执行计划详解

【数据库】mysql执行计划相关推荐

  1. [数据库] ------ mysql 执行计划

    mysql 执行计划 简单来说,mysql整体架构分为三块:应用层,逻辑层,物理层 应用层:负责与客户端交互,建立连接,返回数据,响应请求. 逻辑层:负责查询处理,事务管理等 物理层:实际物理磁盘上存 ...

  2. 来来来!一次搞定各种数据库 SQL 执行计划:MySQL、Oracle

    执行计划(execution plan,也叫查询计划或者解释计划)是数据库执行 SQL 语句的具体步骤,例如通过索引还是全表扫描访问表中的数据,连接查询的实现方式和连接的顺序等.如果 SQL 语句性能 ...

  3. mysql 执行计划 什么用_简述MySQL的执行计划的作用及使用方法

    作为程序员,难免要和数据库打交道,一般情况下,我们不是DBA ,但是又要写很多SQL,因此SQL效率就成了很大的问题.关于SQL效率优化,除了要掌握一定优化技巧外, 还得有很多经验的积累,但是这里我们 ...

  4. 一次搞定各种数据库SQL执行计划

    作者 | 董旭阳TonyDong 出品 | CSDN 博客 执行计划(execution plan,也叫查询计划或者解释计划)是数据库执行 SQL 语句的具体步骤,例如通过索引还是全表扫描访问表中的数 ...

  5. MySQL执行计划 EXPLAIN参数

    MySQL执行计划参数详解 转http://www.jianshu.com/p/7134286b3a09 MySQL数据库中,在SELECT查询语句前边加上"EXPLAIN"或者& ...

  6. 入门mysql执行计划

    执行计划是什么? 执行计划,简单的来说,是SQL在数据库中执行时的表现情况,通常用于SQL性能分析,优化等场景.在MySQL使用 explain 关键字来查看SQL的执行计划.如下所示: //1. 查 ...

  7. Mysql执行计划2

    文章 覆盖索引 Using where 与 using join buffer impossible where SQL 优化 策略 1.尽量全值匹配 策略 2.最佳左前缀法则 策略 3.不在索引列上 ...

  8. 十、Mysql执行计划详细解析

    Mysql执行计划详细解析 执行计划 什么是执行计划 执行计划的作用 执行计划的语法 执行计划详解 ID 列 Id 相同 Id 不同 Id 相同又不同 select_type 列 SIMPLE PRI ...

  9. MySQL执行计划(MySQL调优的重要利器)

    文章目录 看完本篇文章你能学到什么? 一.MySQL执行计划 1.1 id字段 1.2 select_type 字段 1.3 table 字段 1.4 partitions 字段 1.5 type字段 ...

最新文章

  1. Tomcat版本不同,功能区别也是很大!
  2. Qt+Phonon的另一种选择
  3. Anaconda安装Python,提示Python不是内部或外部命令解决方法
  4. Android为TV端助力 最详细的动画大全,包括如何在代码和在XML中使用
  5. Skype for Business Server 2015-03-后端服务器-1-安装
  6. Node响应中文时解决乱码问题
  7. AWK再次认识--内置的参数,以及编写脚本
  8. python中的下标索引
  9. python显示数据长度_python – 获取CSV的长度以显示进度
  10. 主流框架的搭建(VUE,React)
  11. [.net]c#登陆实现验证码-图形编程
  12. JavaBean递归拷贝工具类Dozer
  13. Javascript:基础语法
  14. 算法学习(四)——alphago模型
  15. 生产排程系统_APS(高级计划排产)系统该如何选型,主要从哪些方面考虑?
  16. java 打印字间距 行距_[图片问答]LODOP打印的行间距字间距
  17. 典型相关性分析(清风建模学习笔记)
  18. 每日英语:China's Red Cross Tries to Rebuild After Self-Inflicted Disaster
  19. 为什么建模要尽量用四边面?如何将三边面转化成四边面?
  20. Opencv convertScaleAbs函数 和灰度图上进行透明彩色绘制

热门文章

  1. 阿里yum源与华为yum源的配置
  2. 王道计算机考研j机试指南,王道论坛计算机考研机试指南 三 Hash的应用
  3. ECharts之3D立体柱状图一
  4. js纯原声实现贪吃蛇小游戏
  5. 关于MP3文件中找不到TAG标签的问题
  6. windows10系统如何恢复被windows denfender自动删除的文件
  7. PHP正则匹配img并处理src
  8. 操作系统复习——操作系统接口
  9. 鲁棒性(Robustness)
  10. html下拉菜单读取xml,基于XML的可配置Html下拉框的设计与实现