Mysql Explain 详解

一.语法

explain < table_name >

例如: explain select * from t3 where id=3952602;

二.explain输出解释

+—-+————-+——-+——-+——————-+———+———+——-+——+——-+

| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |

+—-+————-+——-+——-+——————-+———+———+——-+——+——-+

1.id

我的理解是SQL执行的顺利的标识,SQL从大到小的执行.

例如:

mysql> explain select * from (select * from ( select * from t3 where id=3952602) a) b;

+—-+————-+————+——–+——————-+———+———+——+——+——-+

| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |

+—-+————-+————+——–+——————-+———+———+——+——+——-+

| 1 | PRIMARY | | system | NULL | NULL | NULL | NULL | 1 | |

| 2 | DERIVED | | system | NULL | NULL | NULL | NULL | 1 | |

| 3 | DERIVED | t3 | const | PRIMARY,idx_t3_id | PRIMARY | 4 | | 1 | |

+—-+————-+————+——–+——————-+———+———+——+——+——-+

很显然这条SQL是从里向外的执行,就是从id=3 向上执行.

select_type

就是select类型,可以有以下几种

(1) SIMPLE

简单SELECT(不使用UNION或子查询等) 例如:

mysql> explain select * from t3 where id=3952602;

+—-+————-+——-+——-+——————-+———+———+——-+——+——-+

| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |

+—-+————-+——-+——-+——————-+———+———+——-+——+——-+

| 1 | SIMPLE | t3 | const | PRIMARY,idx_t3_id | PRIMARY | 4 | const | 1 | |

+—-+————-+——-+——-+——————-+———+———+——-+——+——-+

(2). PRIMARY

我的理解是最外层的select.例如:

mysql> explain select * from (select * from t3 where id=3952602) a ;

+—-+————-+————+——–+——————-+———+———+——+——+——-+

| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |

+—-+————-+————+——–+——————-+———+———+——+——+——-+

| 1 | PRIMARY | | system | NULL | NULL | NULL | NULL | 1 | |

| 2 | DERIVED | t3 | const | PRIMARY,idx_t3_id | PRIMARY | 4 | | 1 | |

+—-+————-+————+——–+——————-+———+———+——+——+——-+

(3).UNION

UNION中的第二个或后面的SELECT语句.例如 mysql> explain select * from t3 where id=3952602 union all select * from t3 ; +—-+————–+————+——-+——————-+———+———+——-+——+——-+ | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra | +—-+————–+————+——-+——————-+———+———+——-+——+——-+ | 1 | PRIMARY | t3 | const | PRIMARY,idx_t3_id | PRIMARY | 4 | const | 1 | | | 2 | UNION | t3 | ALL | NULL | NULL | NULL | NULL | 1000 | | |NULL | UNION RESULT |

mysql调优explain_MySql性能调优利器之Explain相关推荐

  1. mysql解释器优化_MySQL——SQL性能分析优化利器之Explain

    系统性能的优劣取决于我们sql的查询速度,MySQL Explain命令是分析SQL性能及优化不可缺少的一部分. Explain被我们称为解释器,通过 explain 我们可以知道以下信息:表的读取顺 ...

  2. 文件上传服务器jvm调优,JVM性能调优解决方案(12页)-原创力文档

    精品文档 JVM性能调优解决方案(总结) 一.引言 本文的读者是技术支持人员.阅读本文后,你将理解 jboss 的启动脚本文件 (run.sh )中有一系列的 JVM配置参数的含义,以及如何调整它们, ...

  3. mysql配置优化ya_mysql性能调优工具之mytop

    Mysql性能调优工具之mytop的安装和使用 1.mytop的下载地址 2.首先安装mytop必要的组件. yum -y install perl-DBD-MySQL perl-DBIperl-Te ...

  4. MySQL索引原理与性能调优

    MySQL 应该是最流行的后端数据库,尽管 NOSQL 近几年越来越火爆,可是相信大部分架构师还是会选择 MySQL 来做数据存储. 作为一名Java程序员相信MySQL我们都不陌生,但真的了解MyS ...

  5. hadoop distcp 参数调优_linux性能调优总结 - 星火撩原

    系统性能一直是个热门话题.做运维这几年也一直在搞性能调优,写这个文章也算是对工作的总结. 讲调优第一步是,要讲为什么要调优?也就是系统分析,分析还需要有指标,做好性能监控的情况下,看到确实需要调优才能 ...

  6. hbase 读写调优_hbase性能调优

    一.服务端调优 1.参数配置 1).hbase.regionserver.handler.count:该设置决定了处理RPC的线程数量,默认值是10,通常可以调大,比如:150,当请求内容很大(上MB ...

  7. java g1 收集调优_Java性能调优:充分利用垃圾收集器

    java g1 收集调优 JVM背后发生了什么,垃圾回收如何影响Java性能? 性能调优世界是一个危险的地方,一个JVM标志失衡,事情很快就会变得繁琐. 因此 ,我们决定求助于Java性能调优专家, ...

  8. java 性能调优_Java性能调优调查结果(第四部分)

    java 性能调优 这是本系列中的最后一篇文章,我们将分析我们在2014年10月进行的Java Performance Tuning Survey的结果.如果您尚未阅读第一篇文章,建议您首先阅读以下内 ...

  9. java 性能调优_Java性能调优调查结果(第三部分)

    java 性能调优 这是本系列文章的第三篇,我们将分析2014年10月进行的调查的结果.如果您尚未这样做,我建议从本系列的前两篇文章开始: 问题严重性分析和监视域分析 . 这篇文章着重于故障排除/根本 ...

最新文章

  1. 为什么栈和堆的生长方向不一样
  2. android 应用变量,Android全局应用变量的使用
  3. C#获得父进程PID编号的完整源源码
  4. 随机验证码 php
  5. Valgrind 安装与使用
  6. jit编译_意外分配– JIT编译抖动
  7. python怎么导入apscheduler,如何强制apscheduler将作业添加到作业存储?
  8. 贯穿时域与频域的方法——傅立叶分析
  9. Jquery插件 bootstrap-datepicker 日期拾取器
  10. [SCOI2005]骑士精神
  11. 从命令行安装IIS 7.0
  12. FPGA开平方的实现(三种方法)
  13. 企业内部网路怎么防止网络出现环路?
  14. linux如何卸载光驱显示busy,执行umount 的时候却提示:device is busy 的处理方法 卸载挂载的盘提示如下...
  15. python编码器用什么_用于ceasar-ciph的python构建编码器
  16. Windows 10 喇叭红叉 重装驱动无效 点击喇叭显示无插座信息
  17. JVM分化回收机制(年轻代、年老代、永久代)
  18. JAVA课程设计——彩票抽奖购买系统
  19. 达梦数据库(DM)——表空间管理命令大全
  20. 关于pywin32引起python应用退出时c0000005错误的分析和解决

热门文章

  1. linux中物理cpu、逻辑cpu以及core、vcore
  2. 直播丨Oracle 12.2系列安装
  3. 商业银行如何进行分布式数据库选型思考
  4. 详述一则DB2 Error Code 1639和SQL State 08001案例诊断和解决方案
  5. RMAN CATALOG命令手动注册磁带库中的备份片
  6. 详解CNN实现中文文本分类过程
  7. 云图说 | 华为云医疗智能体,智联大健康,AI药物研发
  8. 【华为云技术分享】【Python算法】分类与预测——支持向量机
  9. 【华为云技术分享】Entity Framework Core 捕获数据库变动
  10. 【华为云技术分享】opensuse使用zypper安装软件