MySQL执行计划参数详解

MySQL数据库中,在SELECT查询语句前边加上“EXPLAIN”或者“DESC”关键字,即可查看该查询语句的执行计划,分析执行计划是优化慢查询的重要手段。如:

EXPLAIN SELECT * FROM school; DESC    SELECT * FROM school;

执行结果:

执行计划参数.png

接下来对这10个参数进行简单解释:

1、id:在整个查询中SELECT的位置;

2、select_type:查询的类型,包括没有子查询的简单查询、UNION、子查询、外部查询、外部查询中的子查询或FROM语句中的子查询等;

3、table:所查询的表名;

4、type:连接如何执行的情况。这里存在很多值,范围从const(最佳)到ALL(最差);

5、possible_keys:为了提高查询速度,在MySQL中可以使用的索引;

6、key:实际使用的索引;

7、key_len:索引的长度;

8、ref:使用哪一列或常数与key一起从表中选择行;

9、rows:MySQL需要在相应表中为了成功进行查询,进行检验的行的数量。为了得出总行数,MySQL必须扫描处理整个查询,再乘以每个表的行值;

10、Extra:其他信息,涉及MySQL如何处理查询,比如说,使用WHERE语句、使用一个索引、利用一个临时表等;

其中select_type可以是:

SIMPLE
PRIMARY
UNION
DEPENDENT UNION
UNION RESULT
SUBQUERY
DEPENDENT SUBQUERY
DERIVED

type可以是:

system
const
eq_ref
ref
ref_or_null
index_merge
unique_subquery
index_subquery
range
index
ALL

Extra可以是:

Distinct
Not exists
range checked for each record (index map
Using filesort
Using index
Using temporary
Using where
Using sort_union(...), Using union(...), Using intersect(...)
Using index for group-by

MySQL执行计划 EXPLAIN参数的更多相关文章

  1. MySQL 执行计划explain详解

    MySQL 执行计划explain详解 2015-08-10 13:56:27 分类: MySQL explain命令是查看查询优化器如何决定执行查询的主要方法.这个功能有局限性,并不总会说出真相,但 ...

  2. MySQL执行计划explain的key_len解析

    前言:当用Explain查看SQL的执行计划时,里面有列显示了 key_len 的值,根据这个值可以判断索引的长度,在组合索引里面可以更清楚的了解到了哪部分字段使用到了索引.下面演示中,表结构的合理性 ...

  3. 如何看MySql执行计划explain(或desc)

    简介 MySQL 提供了一个 EXPLAIN 命令, 它可以对 SELECT 语句进行分析, 并输出 SELECT 执行的详细信息, 以供开发人员针对性优化.EXPLAIN 命令用法十分简单, 在 S ...

  4. MySQL执行计划explain

    一.简介 分析查询慢的原因,在查询语句前加explain即可.如: 二.输出格式 2.0 测试数据 # 表user_info CREATE TABLE `user_info` ( `id` bigin ...

  5. mysql执行计划

         烂sql不仅直接影响sql的响应时间,更影响db的性能,导致其它正常的sql响应时间变长.如何写好sql,学会看执行计划至关重要.下面我简单讲讲mysql的执行计划,只列出了一些常见的情况, ...

  6. mysql执行计划介绍

    简单讲讲mysql的执行计划,只列出了一些常见的情况,希望对大家有所帮助   烂sql不仅直接影响sql的响应时间,更影响db的性能,导致其它正常的sql响应时间变长.如何写好sql,学会看执行计划至 ...

  7. Mysql的执行计划各个参数详细说明

    执行计划各个参数的说明 1.id 主要是用来标识sql的执行顺序,如果没有子查询,一般来说id只有一个,执行顺序也是从上到下 2.select_type 每个select子句的类型 a:  simpl ...

  8. 查看Mysql执行计划

    使用navicat查看mysql执行计划: 打开profile分析工具: 查看是否生效:show variable like ‘%profil%’; 查看进程:show processlist; 选择 ...

  9. MySQL执行计划解读

    Explain语法 EXPLAIN SELECT …… 变体: 1. EXPLAIN EXTENDED SELECT …… 将执行计划“反编译”成SELECT语句,运行SHOW WARNINGS 可得 ...

随机推荐

  1. 苹果ios、ipad加密视频播放器使用教程

    操作流程 温馨提示 播放时,请务必保证播放设备联网(原因:用户名权限验证需要网络,播放后10秒即可关闭网络) a)     请在苹果商店下载并安装app播放器:DrmPlayer b)     选择已 ...

  2. js与uri中location关系

    //获取域名host = window.location.host;host2=document.domain; //获取页面完整地址url = window.location.href; docum ...

  3. 获取本机IP、mac地址、计算机名

    python获取本机IP.mac地址.计算机名 在python中获取ip地址和在php中有很大不同,我们先来看一下python 获得本机MAC地址: >>> import uuid ...

  4. 黑马程序员-------.net基础知识五

    方法(函数) 作用:用来重复代码,当我们在一个过程中反复的写了同样的代码,一般情况下,我们就可以把需要重复写的代码定义在方法中,用的时候只需调用即可 语法: [访问修饰符][static] 返回值类型 ...

  5. 用19种编程语言写Hello World

    用19种编程语言写Hello World 转载自:http://www.admin10000.com/document/394.html Hello World 程序是每一种编程语言最基本的程序,通常 ...

  6. Java多线程初学者指南(11):使用Synchronized块同步方法

    synchronized关键字有两种用法.第一种就是在<使用Synchronized关键字同步类方法>一文中所介绍的直接用在方法的定义中.另外一种就是synchronized块.我们不仅可 ...

  7. 事件tou

    #define EV_TIMER_RESOLUTION 1 /* 1 msec */ #define EV_READ_EVENT EPOLLIN #define EV_WRITE_EVENT EPOL ...

  8. Delphi组件indy 10中IdTCPServer修正及SSL使用心得

    indy 10终于随着Delphi2005发布了,不过indy套件在我的印象中总是复杂并且BUG不断,说实话,不是看在他一整套组件的面子上,我还是喜欢VCL原生的Socket组件,简洁,清晰.Indy ...

  9. Android软件开发之获取通讯录联系人信息

    Android手机的通讯录联系人全部都存在系统的数据库中,如果须要获得通讯里联系人的信息就须要访问系统的数据库,才能将信息拿出来. 这一篇文章我主要带领同学们熟悉Android的通讯录机制. 图中选中 ...

  10. iOS -view横向变成竖向

    -------