4.7 explain 之 Extra
一、说明
包含不合适在其他列中显示,但十分重要的信息。
二、分类
a.
Using filesort : 说明mysql 会对数据使用一个外部的索引排序,而不是按照表内的索引顺序排序进行读取的。mysql中无法利用索引完成的排序操作车称为 “ 文件排序 ”。

b.
Using temporary : 使用了临时表保存中间结果,mysql 在对查询结果排序的时候使用了临时表。常见于order by 和分组查询 group by。

c.
Using index : 表示相应的select操作中使用了覆盖索引 ( Covering Index ), 避免访问了表的数据行,效率不错!
如果同时出现using where,表明索引被用来执行执行索引值的查找;
如果没有同时出现using where ,表明索引用来读取数据而非执行查找动作。

d.
Using where : 表名使用了where 过滤。
e.
Using join buffer : 使用了连接缓存。
f.
impossible where : where 子句的值总是false,不能用来获取任何元素组。
g.
在没有group by 子句的情况下,基于索引优化MIN/MAX操作者或者对于MySAM存储引擎优化count(*) 操作,不必等到执行阶段再进行计算,查询执行计划生成的阶段即完成优化。
f.
distinct : 优化distinct操作,在找到第一匹配的元素后即停止同样的动作。

关注我的公众号,精彩内容不能错过
4.7 explain 之 Extra的更多相关文章
- MySQL explain,Extra分析(转)
		explain结果中有一个Extra字段,对分析与优化SQL有很大的帮助 数据准备: create table user ( id int primary key, name varchar(20), ... 
- MySQL explain结果Extra中"Using Index"与"Using where; Using index"区别探究
		问题背景 最近用explain命令分析查询sql执行计划,时而能看到Extra中显示为"Using index"或者"Using where; Using Index&q ... 
- mysql explain的extra
		导读 extra主要有是那种情况:Using index.Using filesort.Using temporary.Using where Using where无需多说,就是使用了where筛选 ... 
- mysql explain 的extra中using index ,using where,using index condition,using index & using where理解
		using index :查找使用了索引,查询结果覆盖了索引 using where:查找使用了索引,不需要回表去查询所需的数据,查询结果是索引的一部分 using index condition:查 ... 
- Explain的type, where 和 order by 组合是索引的选择
		Explain的type显示的是访问类型,是较为重要的一个指标,结果值从好到坏依次是: system > const > eq_ref > ref > fulltext > ... 
- 巧用MySQL之Explain进行数据库优化
		前记:很多东西看似简单,那是因为你并未真正了解它. Explain命令用于查看执行效果.虽然这个命令只能搭配select类型语句使用,如果你想查看update,delete类型语句中的索引效果,也不是 ... 
- MySQL explain使用
		1.介绍 EXPLAIN 命令用于SQL语句的查询执行计划.这条命令的输出结果能够让我们了解MySQL 优化器(optimlzer)是如何执行SQL 语句的.这条命令并没有提供任何调整建议,但它能够提 ... 
- mysql explain type详解
		本文转载自最官方的 mysql explain type 字段解读 读了很多别人的笔记都杂乱不堪,很少有实例,什么都不如原装的好,所以当你读到我的笔记的时候如果觉得说的不明白,最好参考官方的手册. 我 ... 
- 看懂mysql执行计划--官方文档
		原文地址:https://dev.mysql.com/doc/refman/5.7/en/explain-output.html 9.8.2 EXPLAIN Output Format The EXP ... 
随机推荐
- bash基础特性2
			命令别名(alias) ()alias 显示当前shell进程所有可用的命令别名: ()alias NAME='VALUE' 定义别名NAME,相当于执行命令value ()unlias 撤销别名 注 ... 
- [转]Examining Open vSwitch Traffic Patterns
			In this post, I want to provide some additional insight on how the use of Open vSwitch (OVS) affects ... 
- Vipe框架构思记
			准备着手写一个JAVA框架,基于公司目前的框架提取出来.当然公司现在的框架也是我搭建的.在这整理一下思路. 框架名称:Vipe AOP,IOC容器:Spring MVC:Spring MVC ORM: ... 
- 背水一战 Windows 10 (114) - 后台任务: 后台任务的 Demo(与 app 不同进程), 后台任务的 Demo(与 app 相同进程)
			[源码下载] 背水一战 Windows 10 (114) - 后台任务: 后台任务的 Demo(与 app 不同进程), 后台任务的 Demo(与 app 相同进程) 作者:webabcd 介绍背水一 ... 
- Java虚拟机:内存分配策略
			版权声明:本文为博主原创文章,转载请注明出处,欢迎交流学习! Java中提倡的自动内存管理机制最终可以归结为自动化的解决两个问题:给对象分配内存和回收分配给对象的内存.在之前的博客中已经详细讲解了内存 ... 
- ADB驱动
			Windows 7 64位下使用ADB驱动 什么是ADB? adb的全称为Android Debug Bridge,就是起到调试桥的作用.通过adb我们可以在Eclipse中方面通过DDMS来调试An ... 
- Eclipse 配置 Tomcat 服务器
			配置Tomcat 在首先外部安装好Tomcat,然后在eclipse配置Tomcat服务器: 选择要配置的Tomcat版本: 注意:这一步如果勾选了Create a new local server ... 
- Metasploit Framework(7)客户端渗透(下)
			文章的格式也许不是很好看,也没有什么合理的顺序 完全是想到什么写一些什么,但各个方面都涵盖到了 能耐下心看的朋友欢迎一起学习,大牛和杠精们请绕道 应用场景: Kali机器IP:192.168.163. ... 
- Core 接口发布报错
			An error occurred while starting the application 提示:启动应用程序时发生错误 这个错误在Startup启动项里面 要找具体的报错位置 如下 这样就可以 ... 
- Matplotlib 使用 - 《Python 数据科学手册》学习笔记
			一.引入 import matplotlib as mpl import matplotlib.pyplot as plt 二.配置 1.画图接口 Matplotlib 有两种画图接口: (1)一个是 ... 
