Mysql Explain的简单使用

Mysql Explain

主要重要的字段有上面红色方框圈出来的那几个。

  • type: 连接类型,一个好的SQL语句至少要达到range级别,杜绝出现all级别。
  • key: 使用到的索引名,如果没有选择索引,值是NULL。可以采取强制索引方式。
  • key_len: 索引长度。
  • rows: 扫描行数,该值是一个预估值。
  • extra: 详细说明,注意常见不太友好的值,如下:Using filesort, Using temporary.

Type

可能的值如下

  • ALL: 最坏的情况,全表扫描。
  • index: 和全表扫描一样。只是扫描表的时候按照索引次序进行而不是行。主要优点就是避免了排序, 但是开销仍然非常大。如在Extra列看到Using index,说明正在使用覆盖索引,只扫描索引的数据,它比按索引次序全表扫描的开销要小很多
  • range: 范围扫描,一个有限制的索引扫描。key 列显示使用了哪个索引。当使用=、 <>、>、>=、<、<=、IS NULL、<=>、BETWEEN 或者 IN 操作符,用常量比较关键字列时,可以使用 range
  • ref:  一种索引访问,它返回所有匹配某个单个值的行。此类索引访问只有当使用非唯一性索引或唯一性索引非唯一性前缀时才会发生。这个类型跟eq_ref不同的是,它用在关联操作只使用了索引的最左前缀,或者索引不是UNIQUE和PRIMARY KEY。ref可以用于使用=或<=>操作符的带索引的列。
  • eq_ref: 最多只返回一条符合条件的记录。使用唯一性索引或主键查找时会发生 (高效)
  • const: 当确定最多只会有一行匹配的时候,MySQL优化器会在查询前读取它而且只读取一次,因此非常快。当主键放入where子句时,mysql把这个查询转为一个常量(高效)
  • system: 这是const连接类型的一种特例,表仅有一行满足条件。
  • NULL: 意味说mysql能在优化阶段分解查询语句,在执行阶段甚至用不到访问表或索引(高效)

 

Key

key列显示MySQL实际决定使用的键(索引)。如果没有选择索引,键是NULL。要想强制MySQL使用或忽视possible_keys列中的索引,在查询中使用FORCE INDEX、USE INDEX或者IGNORE INDEX。

 

Key_len

key_len列显示MySQL决定使用的键长度。如果键是NULL,则长度为NULL。使用的索引的长度。在不损失精确性的情况下,长度越短越好 。

 

Rows

rows列显示MySQL认为它执行查询时必须检查的行数。注意这是一个预估值。

 

Explain

可能的值如下

  • Using filesort: MySQL有两种方式可以生成有序的结果,通过排序操作或者使用索引,当Extra中出现了Using filesort 说明MySQL使用了后者,但注意虽然叫filesort但并不是说明就是用了文件来进行排序,只要可能排序都是在内存里完成的。大部分情况下利用索引排序更快,所以一般这时也要考虑优化查询了。使用文件完成排序操作,这是可能是ordery by,group by语句的结果,这可能是一个CPU密集型的过程,可以通过选择合适的索引来改进性能,用索引来为查询结果排序。
  • Using temporary: 用临时表保存中间结果,常用于GROUP BY 和 ORDER BY操作中,一般看到它说明查询需要优化了,就算避免不了临时表的使用也要尽量避免硬盘临时表的使用。
  • Not exists: MYSQL优化了LEFT JOIN,一旦它找到了匹配LEFT JOIN标准的行, 就不再搜索了。
  • Using index: 说明查询是覆盖了索引的,不需要读取数据文件,从索引树(索引文件)中即可获得信息。如果同时出现using where,表明索引被用来执行索引键值的查找,没有using where,表明索引用来读取数据而非执行查找动作。这是MySQL服务层完成的,但无需再回表查询记录。
  • Using index condition: 这是MySQL 5.6出来的新特性,叫做“索引条件推送”。简单说一点就是MySQL原来在索引上是不能执行如like这样的操作的,但是现在可以了,这样减少了不必要的IO操作,但是只能用在二级索引上。
  • Using where: 使用了WHERE从句来限制哪些行将与下一张表匹配或者是返回给用户。注意:Extra列出现Using where表示MySQL服务器将存储引擎返回服务层以后再应用WHERE条件过滤。
  • Using join buffer: 使用了连接缓存:Block Nested Loop,连接算法是块嵌套循环连接;Batched Key Access,连接算法是批量索引连接
  • impossible where: where子句的值总是false,不能用来获取任何元组
  • select tables optimized away: 在没有GROUP BY子句的情况下,基于索引优化MIN/MAX操作,或者对于MyISAM存储引擎优化COUNT(*)操作,不必等到执行阶段再进行计算,查询执行计划生成的阶段即完成优化。
  • distinct: 优化distinct操作,在找到第一匹配的元组后即停止找同样值的动作

转载于:https://www.cnblogs.com/Stay-J/p/10266087.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/484323.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java-绘图相关技术

//学了太多的基础&#xff0c;感觉一直没太大的进步&#xff0c;因此&#xff0c;我决定增加以下学习的难度&#xff0c;以此来增加自己的学习兴趣&#xff1b; /*** Java 绘图相关技术的学习*Graphics类相关技术知识&#xff1a;* 1.Graphics类是所有图像绘图的基类&#xf…

20210712未来智能实验室收录资料

整理&#xff1a;未来智能实验室20210712未来智能实验室收录资料特别推荐&#xff1a;置顶收录未来智能实验室在人民日报《学术前沿》发表的城市大脑最新综述研究论文和报告《城市大脑的起源、发展与未来趋势》&#xff0c;从城市大脑的起源和理论基础&#xff1b;城市大脑的定…

RISC-V生态未来的三种可能~

来源&#xff1a;嵌入式资讯精选因为x86 架构与 Arm 架构商业使用都要付费&#xff0c;因此&#xff0c;RISC-V开源具有很大优势。今天就来说说 RISC-V 生态的内容。关于RISC-VRISC&#xff1a;Reduced Instruction Set Computer&#xff0c;即精简指令集计算机。RISC-V是基于R…

java-图像的几何变换

/** Java 绘图相关技术的学习*Graphics类相关技术知识&#xff1a; 1.图像的几何变换图像翻转&#xff1a;使用另一个重载的drawImage(Image img,int x_1,int y_1,目标矩形的第一坐标int x_2,int y_2,目标矩形的第二坐标int x1,int y1,源矩形的第一坐标int x2,int y2,源矩形的第…

VS Code配置C/C++

VS Code 配置C/C  准备工作 Mingw-w64下载&#xff0c;在vscode中&#xff0c;点击帮助文档&#xff0c;进入如下界面。 在左侧选择CMingw-w64 onWindows,进入如下界面。可以参考文档进行配置。 点击文档中的mingw-w64链接进入如下界面。 点击黄色区域链接进入到里面…

人脑启发AI设计:让神经网络统一翻译语音和文本

来源&#xff1a;图灵人工智能作者&#xff1a;Glaciohound编辑&#xff1a;陈彩娴能够统一地理解语音和文本&#xff0c;是人类能够形成通用语言能力的重要原因。那么&#xff0c;人工智能是否也能如此&#xff1f;最近&#xff0c;来自字节跳动和UIUC的研究人员借鉴这一思路&…

32 bit 与 64 bit 程序(2)比较

32 bit 与 64 bit 程序&#xff08;2&#xff09;区别 由于操作系统内存分配的不同&#xff0c;导致软件开发过程中&#xff0c;需要编译不同版本的软件。 几个重要概念&#xff1a; &#xff08;1&#xff09;这里所说的的32位与64位程序&#xff0c;是指经过编译器编译后的可…

2021世界人工智能大会AI Debate:图神经网络是否是实现认知智能的关键?

来源&#xff1a;学术头条2021年7月10日&#xff0c;WAIC&#xff08;2021世界人工智能大会&#xff09;“图神经网络与认知智能前沿技术论坛”在上海世博中心成功举办。清华大学计算机科学与技术系教授李涓子&#xff0c;复旦大学计算机科学技术学院教授黄萱菁&#xff0c;清华…

Tensorflow深度学习应用(筑基篇)

筑基篇 #codinggbk1.张量 用于描述数据&#xff0c;可以理解为多维数组,包含张量的名字&#xff0c;阶数&#xff0c;形状数值类型. Tensor("Add:0", shape(m,n,k), dtypefloat32),表示节点名为Add,0代表第0个输出&#xff0c;shape表示为MxNxK维的数组&…

WPF中自动增加行(动画)的TextBox

WPF中自动增加行&#xff08;动画&#xff09;的TextBox 原文:WPF中自动增加行&#xff08;动画&#xff09;的TextBoxWPF中自动增加行&#xff08;动画&#xff09;的TextBox WPF中的Textbox控件是可以自动换行的&#xff0c;只要设置TextWrapping属性为”Wrap”即可&#xff…

基因婴儿事未了!人类将在2031年开始实现永生?

来源:WPR前段时间&#xff0c;中国首例“基因编辑”婴儿事件闹得沸沸扬扬&#xff0c;这件事也发酵到了国外&#xff0c;不到一天&#xff0c;各路外媒全部刷屏了。在这些外媒报道里&#xff0c;最有意思的要数《纽约时报》杂志了。他们就“基因编辑”问题&#xff0c;请到了作…

Tensorflow深度学习应用(进阶篇)

#codinggbk进阶篇相关数据&#xff1a;标签&#xff1a;要预测的事物特征&#xff1a;用于描述数据的输入变量样本&#xff1a;数据的特定实例有标签的样本&#xff1a;{特征&#xff0c;标签}无标的样本&#xff1a;{特征&#xff0c;...}模型&#xff1a;将样本映射到预测标签…

Java之Synchronized与锁升级

Synchronized与锁升级 一、概述 在多线程并发编程中 synchronized 一直是元老级角色&#xff0c;很多人都会称呼它为重量级锁。但是&#xff0c;随着 Java SE 1.6 对 synchronized 进行了各种优化之后&#xff0c;有些情况下它就并不那么重了。 本文详细介绍 Java SE 1.6 中为…

机器学习算法

最近&#xff0c;机器学习岗位越来越火爆&#xff0c;那么自然对算法的一些能力要求也是越来越高&#xff0c;想要在求职者中脱颖而出&#xff0c;起步自然非常重要。 我和小伙伴们一起研讨了 2019 年校招的一些算法面试&#xff0c;有些是亲自经历的&#xff0c;也有伙伴分享的…

深度强化学习在智能城市领域应用介绍

来源&#xff1a;海豚数据科学实验室深度强化学习是近年来热起来的一项技术。深度强化学习的控制与决策流程必须包含状态&#xff0c;动作&#xff0c;奖励是三要素。在建模过程中&#xff0c;智能体根据环境的当前状态信息输出动作作用于环境&#xff0c;然后接收到下一时刻状…

Tensorflow深度学习应用(进阶篇)-回归(函数拟合训练)-可视化

#codinggbk进阶篇&#xff1a;多元回归&#xff1a;建模问题&#xff1a;Yx1xx1x2xw2x3xw3...xnxwnb,矩阵简化表示YXWbnumpy库基础&#xff1a;整型的一个数字&#xff0c; 不能取得其shape&#xff08;维度&#xff09;&#xff0c;通过np.array()可以将其转换成一个标量&…

Tensorflow深度学习应用(进阶篇)-1

#codinggbk 逻辑回归&#xff1a;逻辑回归需要将输出控制在[0,1]之间&#xff0c;可以使用函数将值映射在[0,1]之间Sigmod函数&#xff0c;逻辑回归一般采用对数损失函数&#xff1b;from pylab import mpl mpl.rcParams[font.sans-serif] [SimHei] #设置显示绘图显示中文 mp…

​20210716未来智能实验室收录资料

20210716未来智能实验室收录资料特别推荐&#xff1a;置顶收录未来智能实验室在人民日报《学术前沿》发表的城市大脑最新综述研究论文和报告《城市大脑的起源、发展与未来趋势》。本期收录前沿科技进展材料52篇1.《科学》&#xff1a;媲美AlphaFold2的蛋白质结构预测新工具问世…

元宇宙深度研究报告:元宇宙是互联网的终极形态?

报告出品方&#xff1a;华安证券作者&#xff1a;尹沿技、张天、姚天航1 元宇宙&#xff1a;剑指互联网的“终极形态”1.1 元宇宙指向互联网的终极形态元宇宙&#xff08;Metaverse&#xff09;概念起源于科幻小说&#xff0c;或指向互联网的“终极形态”。Metaverse 一词来源于…

Unity基础

Unity3D 游戏开发 第一章 基础知识 Unity是一个用于创建游戏和三维互动内容的开发工具&#xff0c;是一个专业游戏引擎。 2D游戏&#xff1a;视角锁定&#xff0c;二维坐标。 3D游戏&#xff1a;任意视角&#xff0c;三维坐标。 虚拟现实&#xff08;VR&#xff09;&#x…