EXPLAIN之type、Extra

在我们使用explain命令对sql语句进行优化时,有一些参数比较重要但也有点不容易理解。接下来就对他们分别进行介绍。

1. type

type表示此次sql语句的访问类型,可以从总体上反应该语句的运行情况。

从最好到最差依次是:system>const>eq_ref>ref>range>index>ALL

一般来说,查询要至少达到range级别,最好达到ref

  • system:表只有一行记录(等于系统表),这是const类型的特例,平时不会出现,这个也可以忽略不计。

  • const:表示通过索引一次就找到了,const用于比较primary key或者unique索引。因为只匹配一行数据,所以很快。如将主键置于where列表中,MySQL就能将该查询转化为一个常量。

  • eq_ref唯一性索引扫描,读取本表中和关联表表中的每行组合成的一行,查出来只有一条记录。除 了 system const 类型之外, 这是最好的联接类型。

  • ref非唯一性索引扫描,返回本表和关联表某个值匹配的所有行,查出来有多条记录

  • range:只检索给定范围的行,一般就是在WHERE语句中出现了BETWEEN< >in等的查询。这种范围扫描索引比全表扫描要好,因为它只需要开始于索引树的某一点,而结束于另一点,不用扫描全部索引。

  • indexFull Index Scan,全索引扫描,indexALL的区别为index类型只遍历索引树。也就是说虽然ALLindex都是读全表,但是index是从索引中读的,ALL是从磁盘中读取的。

  • ALLFull Table Scan,没有用到索引,全表扫描。

这里着重解释一下indexall

index表示在进行数据查询时,其实我们也用不到index来直接帮助我们快速找到所需的数据。我们也需要进行遍历,但由于该数据列我们创建了索引,因此我们可以遍历索引,不需要遍历数据表。索引的大小通常比整个表要小得多,I/O操作次数也会减少,那么就会有更快的查询速度。

2. Extra

Extra包含不适合在其他列中显示但十分重要的额外信息。

  • Using filesort:说明MySQL会对数据使用一个外部的索引排序,而不是按照表内的索引顺序进行读取。MySQL中无法利用索引完成的排序操作成为"文件内排序"。
  • Using temporary:使用了临时表保存中间结果,MySQL在対查询结果排序时使用了临时表。常见于排序order by和分组查询group by临时表対系统性能损耗很大。
  • Using index:表示相应的SELECT操作中使用了覆盖索引,避免访问了表的数据行,效率不错!如果同时出现Using where,表示索引被用来执行索引键值的查找;如果没有同时出现Using where,表明索引用来读取数据而非执行查找动作。
  • Using where:表明使用了WHERE过滤。
  • Using join buffer:使用了连接缓存。
  • impossible whereWHERE子句的值总是false,不能用来获取任何元组。

在extra中,通常我们需要解决Using filesortUsing temporary

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

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

相关文章

布鲁可冲刺上市:极其依赖第三方,多个授权将到期,朱伟松突击“套现”

“奥特曼”概念股来了。 近日&#xff0c;布鲁可集团有限公司&#xff08;下称“布鲁可”&#xff09;递交招股书&#xff0c;准备在港交所主板上市&#xff0c;高盛和华泰国际为其联席保荐人。据贝多财经了解&#xff0c;布鲁可的经营主体为上海布鲁可科技集团有限公司。 天眼…

轻量级 C Logger

目录 一、描述 二、实现效果 三、使用案例 四、内存检测 一、描述 最近实现一个 WS 服务器&#xff0c;内部需要一个日志打印记录服务器程序的运行过程&#xff0c;故自己实现了一个轻量级的 logger&#xff0c;主要包含如下特征&#xff1a; 可输出 debug、info、warn、er…

历年高校招生计划数据 API 数据接口

历年高校招生计划数据 API 数据接口 基础数据 / 高校招生&#xff0c;各高校历年招生计划数据&#xff0c;高校招生数据 / 历年计划。 1. 产品功能 支持历年高校招生计划数据查询&#xff1b;包含各高校招生计划详细数据&#xff1b;多维度查询条件支持&#xff1b;毫秒级查询…

yolov5_obb

yolov5_obb: 旋转目标检测从数据制作到终端部署全流程教学

安全分析[2]之计算机系统安全分析

文章目录 计算机系统结构计算机系统安全风险软件安全漏洞 计算机系统结构 计算机系统安全风险 计算机硬件安全&#xff1a;因设计不当、器件的质量及使用寿命的限制、外界因素等导致的计算机系统硬件出现故障&#xff0c;进而影响到整个系统的安全。特别是如果是CPU出现安全漏…

【Go专家编程——协程】

1 协程的概念 1.1 基本概念 进程是应用程序的启动实例&#xff0c;每个进程都有独立的内存空间&#xff0c;不同进程通过进程间的通信方式来通信线程从属于进程&#xff0c;每个进程至少包含一个线程&#xff0c;线程是CPU调度的基本单元&#xff0c;多个线程之间可以共享进程…

PCIe总线-事物层之TLP请求和完成报文格式介绍(六)

1.概述 TLP报文按照类型&#xff0c;可以大致分为4中类型&#xff0c;分别是IO请求报文、存储器请求报文、配置请求报文、完成报文和消息请求报文。IO请求报文可分为IO读请求&#xff08;不携带数据&#xff09;和IO写请求&#xff08;携带数据&#xff09;。存储器请求报文可…

架构师系列-定时任务解决方案

定时任务概述 在很多应用中我们都是需要执行一些定时任务的&#xff0c;比如定时发送短信&#xff0c;定时统计数据&#xff0c;在实际使用中我们使用什么定时任务框架来实现我们的业务&#xff0c;定时任务使用中会遇到哪些坑&#xff0c;如何最大化的提高定时任务的性能。 我…

【文末附gpt升级方案】前沿人工智能安全承诺:OpenAI、微软、智谱AI等全球16家公司的共同行动

前沿人工智能安全承诺&#xff1a;OpenAI、微软、智谱AI等全球16家公司的共同行动 一、引言 随着人工智能&#xff08;AI&#xff09;技术的飞速发展&#xff0c;其在全球范围内的应用日益广泛&#xff0c;从智能家居到自动驾驶&#xff0c;从医疗诊断到金融分析&#xff0c;…

C语言——函数指针与指针函数

一、函数指针 1、定义 顾名思义&#xff0c;函数指针就是函数的指针。它是一个指针&#xff0c;属于一个数据类型&#xff0c;其指向一个函数。如定义一个函数&#xff0c;其入口地址就是这个函数的指针&#xff0c;是个常量&#xff0c;可以用该常量给函数指针类型的变量赋值&…

Spark-RDD-依赖关系详解

Spark概述 Spark-RDD概述 Spark-RDD-依赖关系 在Apache Spark中&#xff0c;RDD&#xff08;Resilient Distributed Dataset&#xff09;是一种基本的抽象数据结构&#xff0c;代表了分布式的、不可变的数据集。 RDD之间的依赖关系在Spark中非常重要&#xff0c;因为它们决定了…

汇编语言(一)

寄存器&#xff1a;cpu中可以储存数据的器件&#xff08;AX&#xff0c;BX&#xff09; 汇编语言的组成&#xff1a;1.汇编指令 2.伪指令 3.其他符号 存储器&#xff1a;cpu&#xff0c;传入指令和数据&#xff0c;加以运算。&#xff08;内存&#xff09; 指令和数据&#…

DBAPI怎么进行数据格式转换

DBAPI如何进行数据格式的转换 假设现在有个API&#xff0c;根据学生id查询学生信息&#xff0c;访问API查看数据格式如下 {"data":[{"name":"Michale","phone_number":null,"id":77,"age":55}],"msg"…

【java程序设计期末复习】chapter1 java入门

java入门 java的特点 &#xff08;1&#xff09;简单 Java要比C简单&#xff0c;C中许多容易混淆的概念&#xff0c;或者被Java弃之不用了&#xff0c;或者以一种更清楚更容易理解的方式实现 &#xff08;2&#xff09;面向对象 Java是面向对象的编程语言 &#xff08;3&…

【一站式学会Kotlin】第九节:inline 内联函数

作者介绍: 百度资深Android工程师T6,在百度任职7年半。 目前:成立赵小灰代码工作室,欢迎大家找我交流Android、微信小程序、鸿蒙项目。= 一:通俗易懂的人工智能教程:https://www.captainbed.cn/nefu/ 点一下,打开新世界的大门。 二:【一站式学会Kotlin】免费领取:作者…

如何关闭或者减少屏蔽 CloudFlare 的真人检测

经常浏览境外网站的应该常碰到一个真人检测的提示(如下图所示)。最近,明月就收到了一个知乎上的付费咨询:问我如何去掉这个提示,由此明月也特别的研究了一下这个“真人检测”,这算是 CloudFlare 的一个特色了,基本上大家看到站点访问有这个提示的几乎都是用了 CloudFlar…

xjoi题库一级1-10段题解(c语言版)

xjoi题库一级一段 xjoi题库一级二段 xjoi题库一级三段 xjoi题库一级四段 xjoi题库一级五段

比特币的理论上限是多少个?

标签: 比特币的理论上限; 已经挖出多少个比特币; 问题:比特币的理论上限是多少个?截至2023年10月,已经挖出多少个比特币出来了? 比特币的理论上限 比特币的设计者中本聪在比特币协议中设定了比特币的最大供应量为 21,000,000(2100万)个。这个上限是通过一种称为“减…

CSS3优秀动画代码示例

目录 旋转立方体悬停效果动画路径动画纯CSS进度条文字打字机效果3D翻转卡片SVG路径跟随动画SVG心跳动画旋转文字手风琴效果

【同构字符串】python

思路&#xff1a; 先记录同一个值出现的次数&#xff0c;再将字典中的值取出&#xff0c;比较2个列表即可 代码&#xff1a; class Solution:def isIsomorphic(self, s: str, t: str) -> bool:dit1dict()dit2dict()for i in range(len(s)):if s[i] not in dit1:dit1[s[i…