EXPLAIN说明
| 列名 | 类型 | 解释 |
|---|---|---|
| id | SELECT语句的ID编号,优先执行编号较大的查询,如果编号相同,则从上向下执行 | |
| select_type | SIMPLE | 一条没有UNION或子查询部分的SELECT语句 |
| PIMARY | 最外层或最左侧的SELECT语句 | |
| UNION | UNION语句里的第二条或最后一条SELECT语句 | |
| DEPENDENT UNION | 和UNION类型的含义相似,但需要依赖于某个外层查询 | |
| UNION RESULT | 一条UNION语句的结果 | |
| SUBQUERY | 子查询中的第一个SELECT子句 | |
| DEPENDENT SUBQUERY | 和SUBQUERY类型的含义相似,但需要依赖于某个外层查询 | |
| DERIVED | FROM子句里的子查询 | |
| table | t1 | 各输出行里的信息是关于哪个数据表的 |
| Partitions | NULL | 将要使用的分区.只有EXPLAIN PARTITIONS ...语句才会显示这一列.非分区表显示为NULL |
| type | 联接操作的类型,性能由好到差依次如下 | |
| system | 表中仅有一行 | |
| const | 单表中最多有一个匹配行 | |
| eq_ref | 联接查询中,对于前表的每一行,在此表中只查询一条记录,使用了PRIMARY或UNIQUE | |
| ref | 联接查询中,对于前表的每一行,在此表中只查询一条记录,使用了INDEX | |
| ref_or_null | 联接查询中,对于前表的每一行,在此表中只查询一条记录,使用了INDEX,但是条件中有NULL值查询 | |
| index_merge | 多个索引合并 | |
| unique_subquery | 举例说明: value IN (SELECT primary_key FROM single_table WHERE some_expr) | |
| index_subquery | 举例说明: value IN (SELECT key_column FROM single_table WHERE some_expr) | |
| range | 只检索给定范围的行,包括如下操作符: =, <>, >, >=, <, <=, IS NULL, <=>, BETWEEN, or IN() | |
| index | 扫描索引树(略比ALL快,因为索引文件通常比数据文件小) | |
| ALL | 前表的每一行数据都要跟此表匹配,全表扫描 | |
| possible_keys | NULL | MySQL认为在可能会用到的索引.NULL表示没有找到索引 |
| key | NULL | 检索时,实际用到的索引名称.如果用了index_merge联接类型,此时会列出多个索引名称,NULL表示没有找到索引 |
| key_len | NULL | 实际使用的索引的长度.如果是复合索引,那么只显示使用的最左前缀的大小 |
| ref | NULL | MySQL用来与索引值比较的值, 如果是单词const或者???,则表示比较对象是一个常数.如果是某个数据列的名称,则表示比较操作是逐个数据列进行的.NULL表示没有使用索引 |
| rows | MySQL为完成查询而需要在数据表里检查的行数的估算值.这个输出列里所有的值的乘积就是必须检查的数据行的各种可能组合的估算值 | |
| Extra | Using filesort | 需要将索引值写到文件中并且排序,这样按顺序检索相关数据行 |
| Using index | MySQL可以不必检查数据文件, 只使用索引信息就能检索数据表信息 | |
| Using temporary | 在使用 GROUP BY 或 ORDER BY 时,需要创建临时表,保存中间结果集 | |
| Using where | 利用SELECT语句中的WHERE子句里的条件进行检索操作 |
EXPLAIN说明的更多相关文章
- SQL Tuning 基础概述02 - Explain plan的使用
1.explain plan的使用 SQL> explain plan for delete from t_jingyu; Explained. SQL> select * from ta ...
- mongodb之使用explain和hint性能分析和优化
当你第一眼看到explain和hint的时候,第一个反应就是mysql中所谓的这两个关键词,确实可以看出,这个就是在mysql中借鉴过来的,既然是借鉴 过来的,我想大家都知道这两个关键字的用处,话不多 ...
- 1205索引使用explain
-- 转自博客http://blog.sina.com.cn/s/blog_75a2f94f0101ddhb.html01type类型type按照从最佳类型到最坏类型进行排序,该字段和ref字段相结合 ...
- mysql的explain学习
explain是用来获取sql执行计划的信息. 上面是一个最简单的sql分析.下面来分析每列的意思. ①id ②select_type ③ table ④type ⑤possible_key ⑥ke ...
- 分析oracle的执行计划(explain plan)并对对sql进行优化实践
基于oracle的应用系统很多性能问题,是由应用系统sql性能低劣引起的,所以,sql的性能优化很重要,分析与优化sql的性能我们一般通过查看该sql的执行计划,本文就如何看懂执行计划,以及如何通过分 ...
- 【转载】 mysql explain用法
转载链接: mysql explain用法 官网说明: http://dev.mysql.com/doc/refman/5.7/en/explain-output.html 参数: htt ...
- 【转】Oracle 执行计划(Explain Plan) 说明
转自:http://blog.chinaunix.net/uid-21187846-id-3022916.html 如果要分析某条SQL的性能问题,通常我们要先看SQL的执行计划,看看SQ ...
- MySQL中EXPLAIN命令详解
explain显示了mysql如何使用索引来处理select语句以及连接表.可以帮助选择更好的索引和写出更优化的查询语句. 使用方法,在select语句前加上explain就可以了: 如: expla ...
- 【夯实Mysql基础】mysql explain执行计划详解
原文地址 1).id列数字越大越先执行,如果说数字一样大,那么就从上往下依次执行,id列为null的就表是这是一个结果集,不需要使用它来进行查询. 2).select_type列常见的有: A ...
- MySQL慢查询Explain Plan分析
Explain Plan 执行计划,包含了一个SELECT(后续版本支持UPDATE等语句)的执行 主要字段 id 编号,从1开始,执行的时候从大到小,相同编号从上到下依次执行. Select_typ ...
随机推荐
- Mybatis 一对多 配置文件
当一个Entity中包含的属性有对象和对象集合时,用mybatis映射时要在Entity中添加一个字段来唯一标识当前的Entity对象.否则查询的Entity集合中的对象会被覆盖掉. 如下一个POJO ...
- opencart框架分析与概况
1. Opencart的系统架构 1.1. 架构分析 Opencart是有自己的开发架构的,其架构的核心都在system\engine 下,访问控制统一用 根目录下的 index.php 来协调. R ...
- C#使用拉依达准则(3σ准则)剔除异常数据(.Net剔除一组数据中的奇异值)
原文:C#使用拉依达准则(3σ准则)剔除异常数据(.Net剔除一组数据中的奇异值) 1.问题的提出: 电池生产中,遇到一批电池的测量结果数据: 电压值 电池个数 电压值 电池个数 电压值 电池个数 电 ...
- C# 异步委托的使用
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threa ...
- Hutool 3.0.8 发布,Java 工具集
Hutool 是一个Java工具包,提供了丰富的文件.日期.日志.正则.字符串.配置文件等工具方法,并封装了一套简单易用的ORM框架. 主页:http://hutool.cn/ 文档:http://h ...
- Win8 Metro(C#)数字图像处理--2.66FloodFill算法
原文:Win8 Metro(C#)数字图像处理--2.66FloodFill算法 [函数名称] 洪水填充算法函数 WriteableBitmap FloodfillProcess(Write ...
- iOS-HTTP浅析
HTTP原理 什么是URL URL中常见的几种协议 什么是HTTP协议 HTTP是做什么的 为什么要使用HTTP协议 HTPP协议的通信过程介绍 HTTP请求 HTTP响应 HTTP请求的选择 两种发 ...
- eclipse 插件编写(二)
上篇文章简单写了下怎么新建一个eclipse插件工程,这次写一下怎么在上次的工程中添加几个菜单,如菜单栏菜单.工具栏菜单.右键菜单等. 创建一个完成的菜单需要了解三个扩展点,即menus.comman ...
- 一个Demo让你掌握Android所有控件
原文:一个Demo让你掌握Android所有控件 本文是转载收藏,侵删,出处:"安卓巴士" 下面给出实现各个组件的源代码: 1.下拉框实现--Spinner packag ...
- 智能合约开发——以太坊 DApp 实现 购买通证token
合约的buy()方法用于提供购买股票的接口.注意关键字payable,有了它买股票的人才可以付钱给你. 接收钱没有比这个再简单的了! function buy() payable public ret ...