mysql的explain

explain可以用于select,delete,insert,update的statement。
当explain用于statement时,mysql将会给出其优化器(optimizer)的执行计划。
在这里插入图片描述
通过explain字段生成执行计划表。下面来解析这个执行计划表的每一列的意义。

执行计划表的每一行都描述了查询执行计划中的一个操作或阶段。

id:表示执行顺序,越大越先,相同按展示顺序

select_type(查询的类型)

  • SIMPLE: 一个简单的 SELECT 查询,不包含子查询或 UNION。通常情况下,优化器能够直接确定最佳的执行计划。

  • PRIMARY: 主查询,复杂查询的最外层。

  • SUBQUERY: 不包含在form中的子查询

  • DERIVED: 包含在form中的子查询,mysql会将查询结果放到一个临时表中

  • UNION: 这表示 UNION 查询的第二个或后续查询语句。

table:操作的表

(不重要)partitions:表示查询涉及的分区信息。分区是将表拆分成独立的片段,每个片段称为一个分区,可以根据特定的规则将数据分布到不同的分区中

type:连接方法或者查找中的访问方法

从优到最差的排列:system>const>eq_ref>ref>range>index>ALL

  • null:什么都不做

  • const: 假如user_id 是主键,你使用 WHERE user_id = 1,主键和常量。

  • eq_ref: 访问类型表示在查询中使用了等值连接,并且连接的列在右侧表中是唯一索引,查找聚簇索引树返回数据行。

SELECT *
FROM orders
JOIN customers ON orders.customer_id = customers.customer_id;
  • ref: 基于非唯一索引进行查找,可能返回多个匹配值,因此需要通过引用来进行访问。查找聚簇索引树返回数据行。

  • range: 使用索引进行范围扫描,返回一个范围内的行。

  • index: 查找二级索引树返回聚簇索引值。

  • ALL: 全表扫描,检索表中的所有行,这是最慢的访问方式之一。

possible_key(没啥用):就是可能使用的index,但是没使用

key:查询使用的索引

key_len:表示了索引键的前缀长度,或者是索引键的完整长度

ref:

rows:这个值表示了在执行查询时,MySQL 预计需要扫描和检查的行数,而不是实际返回的行数。

filtered:

Extra:

覆盖索引的意思就是查询结果可以完全由索引列提供,而不需要额外的表访问。
eg.SELECT username FROM users; //username有索引,索引列就是结果

  • Using index: 表示 MySQL 使用了覆盖索引,即只使用了索引而没有访问表中的实际行数据。

  • Using where: 表示 MySQL 在查询中使用了 WHERE 子句中的条件进行筛选,而不是在 Using index 标记中的索引中完成筛选。

  • Using temporary: 表示 MySQL 在执行查询时创建了临时表。

创建使用临时表的情况:sort by,group by,join,子查询

  • Using filesort: 表示 MySQL 在执行查询时使用了文件排序操作。

filesort:将查询结果写入临时文件中,并对临时文件中的数据进行排序操作。

  • Using join buffer: 表示 MySQL 在执行联接操作时使用了联接缓冲区,通常发生在需要对大量数据进行联接时,可以提高查询性能。

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

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

相关文章

提升用户体验:Xinstall免邀请码功能详解

在移动互联网时代,App的推广和运营显得尤为重要。然而,传统的App推广方式往往需要用户填写繁琐的邀请码,这不仅降低了用户体验,还影响了推广效果。幸运的是,Xinstall作为国内专业的App全渠道统计服务商,推出…

汽车电子都应用哪些频点的贴片晶振

晶振通过与其它元器件的连接使用,产生脉冲起到信号源的作用,所以在电子圈中有一个很形象的比喻: 如果把芯片比如电路的控制大脑,那晶振产生的信号就是给大脑持续供需的血液。平时,在我们使用的手机,蓝牙耳机&#xff0…

没有疯狂内卷的日本智能机市场,小屏与设计仍旧是主流

如果聊起国内的智能机市场,我想大多数人的印象就是疯狂内卷。卷影像、卷屏幕、卷快充、卷性能……客观地说,国内的3C产品还是很有质价比的。不过在没有如此内卷的日本市场,各种小屏手机仍旧是主流。 除了苹果外,日本本土品牌的夏普…

python中内置函数简要介绍

pyton3.11版本中常用的内置函数,不需要导入,可直接使用。这些函数大多数都是比较常用的,很多在之前的文章都有介绍过。 大家也可直接到官网查看学习 https://docs.python.org/zh-cn/3.11/library/functions.html。 内置函数 abs() min() …

高质量新闻数据集OpenNewsArchive:880万篇主流新闻报道,国产大模型开源数据又添猛料

在构建国产大语言模型的道路上,高质量新闻是不可或缺的重要语料之一。这类语料集准确性、逻辑性、时效性于一体,同时包含丰富的事实知识,可以大幅提升模型的文本生成质量、词汇表达能力、事件理解分析能力以及时序内容的适应性和预测能力&…

《Python编程从入门到实践》day29

# 昨日知识点回顾 修改折线图文字和线条粗细 矫正图形 使用内置格式 # 今日知识点学习 15.2.4 使用scatter()绘制散点图并设置样式 import matplotlib.pyplot as plt import matplotlib matplotlib.use(TkAgg)plt.style.use(seaborn-v0_8) # 使用内置格式 fig, ax plt.subpl…

LeetCode494:目标和

题目描述 给你一个非负整数数组 nums 和一个整数 target 。 向数组中的每个整数前添加 ‘’ 或 ‘-’ ,然后串联起所有整数,可以构造一个 表达式 : 例如,nums [2, 1] ,可以在 2 之前添加 ‘’ ,在 1 之…

力扣刷题 day2

快乐数 202. 快乐数 - 力扣(LeetCode)   图: java // 快乐数 --> 19 > 1^2 9 ^2 82 > 82 > 8 ^ 2 2 ^ 2 ......public boolean isHappy(int n) {// 使用快慢指针int slow n, fast getSum(n);while (slow ! fast) {slow getSum(slo…

【计算机毕业设计】springboot二手家电管理平台

时代在飞速进步,每个行业都在努力发展现在先进技术,通过这些先进的技术来提高自己的水平和优势,二手家电管理平台当然不能排除在外。二手家电管理平台是在实际应用和 软件工程的开发原理之上,运用java语言以及前台VUE框架&#xf…

基于SSM的婚恋网站的设计与实现(有报告)。Javaee项目。ssm项目。

演示视频: 基于SSM的婚恋网站的设计与实现(有报告)。Javaee项目。ssm项目。 项目介绍: 采用M(model)V(view)C(controller)三层体系结构,通过Spri…

std::remove-----std::remove_if

std::remove和std::remove_if 是 C11 标准库中的一个算法函数. std::remove 作用 遍历一遍容器,将容器中所有不是指定元素的元素往前复制。 总之就是一句话: 把不该删除的移动到前面,后面的就是应该删除的。 注意: 1&#…

函数递归练习

目录 1.分析下面选择题 2.实现求第n个斐波那契数 3.编写一个函数实现n的k次方,使用递归实现。 4.写一个递归函数DigitSum(n),输入一个非负整数,返回组成它的数字之和 5.递归方式实现打印一个整数的每一位 6.实现求n的阶乘 1.分析下面选择…

算术平均数

算术平均数(average)是一组数据相加后除以数据的个数而得到的结果,是度量数据水平的常用统计量,在参数估计和假设检验中经常用到。比如:用职工平均工资来衡量职工工资的一般水平,用平均体重来观察某一人群体…

基于LeNet5实现手写数字识别,可视化卷积层。

LeNet5 CNN卷积网络的发展史 1. LetNet5(1998) 2. AlexNet(2012) 3. ZFNet(2013) 4. VGGNet(2014) 5. GoogLeNet(2014) 6. ResNet(2015) 7. DenseNet(2017) 8. EfficientNet(2019) 9. Vision Transformers(2020) 10. 自适应卷积网络(2021) 上面列出了发展到现在CNN的一些经典…

单位个人如何向期刊投稿发表文章?

在单位担任信息宣传员一职以来,我深感肩上的责任重大。每月的对外信息宣传投稿不仅是工作的核心,更是衡量我们部门成效的重要指标。起初,我满腔热血,以为只要勤勉努力,将精心撰写的稿件投至各大报社、报纸期刊的官方邮箱,就能顺利登上版面,赢得读者的青睐。然而,现实远比理想骨…

Java入门基础学习笔记23——For循环结构

1、for循环: 控制一段代码反复执行很多次。 2、For循环语句的基本结构: for(初始化表达式;判断表达式;递增(递减)表达式) {循环体语句(重复执行的代码) } 例&#xff1…

基于单片机的智能安防系统设计(32+4G+WIFI版)-设计说明书

设计摘要: 本设计基于STM32单片机,旨在实现一个智能安防系统,主要包括烟雾和温度传感器、人体红外传感器、显示屏、按键、4G模块和WiFi模块等组件。通过这些组件的协作,实现了火灾检测、入侵监测、状态显示、用户交互和远程通信等…

OSG编程指南<二十三>:基于OSG+ImGui制作模型编辑器,实现三轴方向的实时平移、旋转和缩放变化

1、概述 在OSG的开发应用过程中,我们有时候总会纠结于使用MFC还是Qt来嵌入OSG窗口以便于后续的功能开发,毕竟选择一个合适的UI框架,对于后续的开发还是省去很多麻烦的。但对于初学者来说,可能对框架消息机制的不熟悉,尤…

项目8-头像的上传

js实现头像上传并且预览图片功能以及提交 - 掘金 (juejin.cn) 我们简单建立一个表 1.前端知识储备 1.1 addClass的使用 1.基本语法 addClass() 方法向被选元素添加一个或多个类。 该方法不会移除已存在的 class 属性,仅仅添加一个或多个 class 属性。 提示&…

Pathlib,一个不怕迷路的 Python 向导

大家好!我是爱摸鱼的小鸿,关注我,收看每期的编程干货。 一个简单的库,也许能够开启我们的智慧之门, 一个普通的方法,也许能在危急时刻挽救我们于水深火热, 一个新颖的思维方式,也许能…