MySQL数据库性能分析之explain使用

news/2024/4/30 14:50:56/文章来源:https://blog.csdn.net/weixin_72076848/article/details/126642696

怎么使用?

explain + select语句

怎么理解? 

 我们对explain查询出来的信息进行分析

1、id

select查询的序列号,包含一组数字,表示查询中执行select自居或者操作表的顺序

id相同,执行顺序由上至下

id不同,如果是子查询,id的序号会递增,id值越大优先级越高,越先被执行

2、select_type

SIMPLE:简单的select查询,不包含任何子查询或UNION(联合查询)

PRIMARY:查询中若包含任何复杂的子部分,最外层则是PRIMARY

SUBQUERY:在select或where列表中包含的子查询

DERIVED:在from列表中包含的子查询被标记为DERIVED(衍生),mysql会递归执行这些子查询并把结果放在临时表里

UNION:若第二个select查询出现在UNION之后,则被标记为UNION

UNION RESULT:从UNION表中获取结果的select

3、partitions

匹配的分区

4、table

显示这一行的数据是关于哪张表的

5、type

 访问类型排列,显示查询使用了何种类型,从最好到最差依次是:

system>const>eq_ref>ref>range>index>All

system:表中只有一条数据(等于系统表),这是const类型的特例,平常不会出现可以忽略不计

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

eq_ref:唯一索引扫描,对于每个索引键,表中只有一条记录与之匹配,常见主键或者唯一索引

ref:非唯一性索引扫描,返回匹配某个条件的所有行

range:只检索给定范围的行,使用一个索引来选择行;一般就是在你的where语句中出现了between、<、>、in等范围查询的关键字

index:Full Index Scan,index与all区别为index类型只遍历索引树,这通常比ALL快,因为索引文件通常都比数据文件小(也就是说虽然all和index都是读全表,但是index是从索引文件中读取,而all是从磁盘中读取)

all:Full Table Scan,遍历全表以找到匹配的行

6、possible_keys

显示理论上应用在这张表中的索引,一个或者多个。查询涉及到的字段上若存在索引,则该索引将被列出,但不一定被查询实际使用

7、key

实际使用的索引。如果为null,则没有使用索引

8、key_len

表示索引中使用的字节数,可通过该列计算查询中使用的索引长度;在不损失精确性的情况下,长度越短越好

key_len表示的值为索引字段的最大可能长度,并非实际使用长度,即key_len是根据表定义计算而得出的,不是通过表内检索得出的

9、ref

显示索引的哪一列被使用;如果可能的话,是一个常数(const)

10、rows

根据表统计信息及索引选用情况,大致估算出找到所需的记录需要读取的行数

11、filtered

查询条件过滤行数的百分比

12、Extra

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

Using filesort:说明mysql会对数据使用一个外部的索引排序,而不是按照表内的索引顺序进行读取,mysql中无法利用索引完成的排序称为”文件排序“

Using temporary:使用临时表保存中间结果,MySQL在对查询结果排序时使用临时表

Using index:表现相应的select操作中使用了覆盖索引(Covering Index),避免访问表的数据行,效率不错

如果同时出现using where,表明索引被用来执行索引键值的查找 

如果没有同时出现using where,表面索引用来读取数据而非执行查找

覆盖索引,又称索引覆盖,就是指select的数据列只用从索引中就能获得,不必读取数据行,可以理解为所要查询的字段被建立的索引覆盖

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

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

相关文章

Quartz.NET简单使用

文章目录一、Quartz.NET概述二、Quartz.NET快速上手1. 下载安装&#x1f53a;2. 配置2.1. Fluent Scheduler Builder API2.2. 配置文件⭐3. 启动一个示例程序3.1. 添加日志3.2. 试验程序并添加作业三、教程1️⃣使用Quartz2️⃣作业与触发器2.1. Quartz API2.2. Jobs和Triggers…

2022-8-31 jsp el表达式

jsp <%-- JSP脚本片段:用于在JSP页面写java代码--%> 注意: 1、JSP脚本片段中只能出现java代码,不能出现HTML元素。在 访问JSP时,JSP引擎翻译JSP页面中的脚本片段。 2、JSP脚本片段中的java代码必须严格遵守java的规则 3、一个JSP页面是可以有多…

猿创征文|UDP/TCP网络编程

⭐️前言⭐️ &#x1f349;博客主页&#xff1a; &#x1f341;【如风暖阳】&#x1f341; &#x1f349;精品Java专栏【JavaSE】、【备战蓝桥】、【JavaEE初阶】、【MySQL】、【数据结构】 &#x1f349;欢迎点赞 &#x1f44d; 收藏 ⭐留言评论 &#x1f4dd;私信必回哟&…

Redis主从库网络断连问题——repl_backlog_buffer

主从库间网络断了怎么办&#xff1f; 在 Redis 2.8 之前&#xff0c;如果主从库在命令传播时出现了网络闪断&#xff0c;那么&#xff0c;从库就会和主库重新进行一次全量复制&#xff0c;开销非常大。 从 Redis 2.8 开始&#xff0c;网络断了之后&#xff0c;主从库会采用增量…

hashmap底层原理解析

底层数据结构&#xff0c;1.7与1.8有何不同? 为何要用红黑树&#xff0c;为何一上来不树化&#xff1f;树化阈值为何是8&#xff1f;何时会树化&#xff1f;何时会退化为链表? 链表比较短的时候&#xff0c;查询性能并没有那么低&#xff0c;不用费劲把它转成红黑树&#xff…

项目经理如何做好项目管理中的风险管理

项目中始终有些看不见的风险&#xff0c;这些风险可以成为威胁&#xff0c;也有可能会影响到项目的计划发生重大的变化。 一、项目目标不明确 确定项目目标是项目启动阶段重要的工作之一&#xff0c;要想项目在实施阶段少走弯路&#xff0c;在项目开工前&#xff0c;必须清晰…

信息系统项目管理师Part16-物联网

物联网 1.物联网的两项关键技术 传感器技术、嵌入式技术 2.传感器技术和嵌入式技术 RFID射频识别&#xff1a;可通过无线电信号识别特定目标并读写相关数据&#xff0c;而无需识别系统与特定目标之间建立机械或光学接触。 嵌入式技术&#xff1a;是综合了计算机硬件、传感器技…

猿创征文|OLAP之apache pinot初体验

目录 一、背景 二、介绍 三、特征 四、价值 五、参考组件 组件清单介绍&#xff1a; 1.Controller 2.Server 3.Broker 4.Minion (optional) 六、数据采集 批量数据流程 实时数据流程 查询处理流程 一、背景 最近在熟悉公司内部的埋点采集&#xff0c;发现数据架构…

NK-RTU980 CAP

BSP包中有两个CAP相关的例程&#xff0c;两个例程的区别为获取的图像数据的存储格式不同&#xff0c;planar例程是先存储所有像素点的Y&#xff0c;再存U&#xff0c;再存V。packed例程是每个像素的YVU连续存储。 一、硬件电路 处理器为NUC980DR61Y&#xff0c;封装为64pin&a…

python--转换wrf输出的风场数据为网页可视化的json格式

前言&#xff1a; 一般网页可视化风场中的数据都是json格式&#xff0c;而如果我们希望将wrf模式模拟输出的风场数据在网页中进行展示&#xff0c;这就需要先将wrfoutput数据转换为网页可以识别的json格式。 这里主要需要用到json库&#xff0c;主要的实现方式就是将读取的风场…

微信网课答案公众号题库接口使用

微信网课答案公众号题库接口使用 本平台优点&#xff1a; 多题库查题、独立后台、响应速度快、全网平台可查、功能最全&#xff01; 1.想要给自己的公众号获得查题接口&#xff0c;只需要两步&#xff01; 2.题库&#xff1a; 查题校园题库&#xff1a;查题校园题库后台&…

亚马逊审核 美国站安全带ASTMF1772安全绳攀岩绳EN892认证流程

1 登山锁扣定义 登山用锁扣是一种带弹簧门的金属环状物&#xff0c;用于在攀岩和登山时快速可逆地连接各部件&#xff0c;是安全系统关键的一部分。 登山用锁扣可用于将绳索固定到设备上&#xff0c;或者将两件或多件设备连接在一起。它们通常由铝或钢制成。这种锁扣具有不同…

ps2021神经ai滤镜无法使用,ps2021没法用神经元滤镜

如何解决ps2021 新版 AI神经滤镜不能用? 网上买正版&#xff0c;更新下就好了&#xff0c;盗版的都会有各种这样的问题。ps2021神经AI滤镜是需简要上传云端&#xff0c;由Adobe官方服务器人工智能运算的。 Ps2021版本新增了Ai神经元滤镜&#xff0c;它不是与软件一起安装的&…

谣言粉碎机?Python验证股市操盘口诀

更多精彩内容,欢迎关注公众号:数量技术宅,也可添加技术宅个人微信号:sljsz01,与我交流。 经常炒股的朋友,应该都听说过这段操盘口诀: 早上大跌要买,早上大涨要卖 下午大涨不追,下午大跌次日买 早上大跌不割,不涨不跌睡觉 我们随手百度,也能发现各大主流论坛,充斥着该口…

Spring入门——Eclipse实现HelloWorld程序

前言 疫情影响又延期开学&#xff0c;只能在家上上网课划划水&#xff0c;刚做完spring入门的一个小作业&#xff0c;来做个总结分享&#xff0c;我也是个刚入门的小白&#xff0c;还望大佬们指点。 步入主题 环境 eclipse/spring-tool-suite-3 jdk1.8.0_221 另外&#xff0…

Linux :mysql数据库自动备份

Linux &#xff1a;mysql数据库自动备份前言使用shell脚本进行数据库的定时备份确定备份数据库备份shell脚本定时shell脚本前言 当项目发布到服务器上后&#xff0c;接下来考虑到就是如何做好数据库的数据备份。为的就是防止服务器突然异常崩溃&#xff0c;而导致的数据丢失问…

使用上下游思维实现系统解耦

在软件开发领域&#xff0c;解耦这个词相信大家都不陌生。在面向对象的语境下&#xff0c;我们会应用SOLID原则来构建高内聚低耦合的应用&#xff0c;实现模块间的解耦&#xff1b;在复杂业务系统分析和建模时&#xff0c;会通过DDD的战略和战术设计帮助划分领域并实现分布式系…

Java毕业设计-校园活动赞助与宣传管理系统

&#x1f525;作者主页&#xff1a;疯狂行者&#x1f525; &#x1f496;✌java领域优质创作者,专注于Java技术领域技术交流✌&#x1f496; &#x1f496;文末获取源码&#x1f496; 精彩专栏推荐订阅&#xff1a;在 下方专栏&#x1f447;&#x1f3fb;&#x1f447;&#x1…

(分布式缓存)Redis持久化

一、RDB持久化 首先需要在Linux系统中安装一个Redis&#xff0c;如果尚未安装的同学&#xff0c;可以参考下面链接教程安装先&#xff1a; (73条消息) 单机安装Redis_其然乐衣的博客-CSDN博客 修改配置文件 创建一个数据 因为设置了只要5秒内有一次修改就会触发一次备份数据&am…

最全 Burp Suite 最新付费稳定版安装教程

介绍 Burp Suite是web应用程序渗透测试集成平台。从应用程序攻击表面的最初映射和分析,到寻找和利用安全漏洞等过程,所有工具为支持整体测试程序而无缝地在一起工作。 平台中所有工具共享同一robust框架,以便统一处理HTTP请求、持久性、认证、上游代理、日志记录、报警和可扩…