工作记录---(Explain执行计划详解--基于HS)--每天都要保持学习状态和专注的状态啊!!!

news2024/11/24 1:16:56


Explain详细说明:
在这里插入图片描述
id列
id列的编号是 select 的序列号,有几个 select 就有几个id,并且id的顺序是按 select 出现的顺序增长的。MySQL将 select 查询分为简单查询(SIMPLE)和复杂查询(PRIMARY)。

复杂查询分为三类:简单子查询、派生表(from语句中的子查询)、union 查询

id列越大执行优先级越高,id相同则从上往下执行,id为NULL最后执行

** table列**
表示 explain 的一行正在访问哪个表

type列
这一列表示关联类型或访问类型,即Mysql决定如何查找表中的行,查找数据行记录的大概范围。
依次从最优到最差分别为:system >const -> eq_ref > ref > range > index > ALL

index:扫描全表索引,这通常比ALL快一些。(index是从索引中读取的,而all是从硬盘中读取)

possible_keys列
这一列显示查询可能使用哪些索引来查找

key列
这一列显示mysql实际采用哪个索引来优化对该表的访问
key_len列
这一列显示了mysql在索引里使用的字节数,通过这个值可以算出具体使用了索引中的哪些列。

字符串

char(n):n字节长度
varchar(n):2字节存储字符串长度,如果是utf-8,则长度3n+2
数值类型

tinyint:1字节
smallint:2字节
int:4字节
bigint:8字节
时间类型

date:3字节
timestamp:4字节
datetime:8字节
如果字段允许为NULL,需要1字节记录是否为NULL

索引最大长度是768字节,当字符串过长时,mysql会做一个类似左前缀索引的处理,将前部部分的字符提取出来做索引。

一般情况下key_len值越小越好,索引越短,既节约空间,速度又比较快

ref列
这一列显示了在key列记录的索引中,表查找值所用到的列或常量,常见的有:const(常量),字段名

rows列
这一列是mysql估计要读取并检测的行数

filtered
某个表经过搜索条件过滤后剩余记录条数的百分比

Extra列
Using index:查询的列被索引覆盖,并且where筛选条件是索引的前导列(最左侧索引),是性能高的表现。一般是使用了覆盖索引(索引包含了所有查询的字段)。对于innodb来说,如果是辅助索引性能会有不少提高

Using where:查询的列未被索引覆盖,where筛选条件非索引的前导列

Using where Using index:查询的列被索引覆盖,并且where筛选条件是索引列之一但不是索引的前导列,意味着无法直接通过索引查找来查询到符合条件的数据,Using index代表select用到了覆盖索引

NULL:查询的列未被索引覆盖,并且where筛选条件是索引的前导列,意味着用到了索引,但是部分字段未被索引覆盖,必须通过“回表”来实现,不是纯粹地用到了索引,也不是完全没用到索引

Using temporary:mysql需要创建一张临时表来处理查询。出现这种情况一般是要进行优化的,首先是想到用索引来优化。
actor.name没有索引,此时创建了张临时表来distinct
film.name建立了idx_name索引,此时查询时extra是using index,没有用临时表

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

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

相关文章

MXNet中图解稀疏矩阵(Sparse Matrix)的压缩与还原

1、概述 对于稀疏矩阵的解释,就是当矩阵里面零元素远远多于非零元素,且非零元素没有规律,这样的矩阵就叫做稀疏矩阵,反过来就是稠密矩阵,其中非零元素的数量与所有元素的比值叫做稠密度,一般稠密度小于0.0…

妙用Java 8中的 Function接口,消灭if...else(非常新颖的写法)

文章目录 Function 函数式接口Supplier供给型函数Consumer消费型函数Runnable无参无返回型函数Function函数的表现形式为接收一个参数,并返回一个值。Supplier、Consumer和Runnable可以看作Function的一种特殊表现形式 使用小技巧处理抛出异常的if处理if分支操作如果…

项目流程管理工具 OmniPlan Pro 4 mac中文版软件介绍

OmniPlan Pro mac是 The Omni Group 为 macOS 和 iOS 操作系统开发的项目管理软件。它允许用户创建和管理复杂的项目、定义任务、分配资源、跟踪进度和生成报告。 OmniPlan Pro mac包括甘特图、网络图、关键路径分析、资源均衡和成本跟踪等功能。 借助 OmniPlan Pro&#xff0…

G3ESa HENF318736R1 E3EB HENF315129R1

G3ESa HENF318736R1 E3EB HENF315129R1 该ARC研究探索了当前和历史市场表现以及相关技术和业务趋势,确定了领先的技术供应商,并为中央电站发电应用中的分布式控制系统的全球市场提供了五年全球预测。这项新研究基于ARC行业领先的市场研究数据库、广泛的…

《安富莱嵌入式周报》第326期:航空航天级CANopen协议栈,开源USB PD电源和功耗分析,开源EtherCAT伺服驱动板,时序绘制软件,现代机器人设计

周报汇总地址:嵌入式周报 - uCOS & uCGUI & emWin & embOS & TouchGFX & ThreadX - 硬汉嵌入式论坛 - Powered by Discuz! 更新一期视频教程: BSP视频教程第28期:CANopen协议栈专题,CANopen主从机组网实战&a…

分享34个发布商会PPT,总有一款适合您

分享34个发布商会PPT,总有一款适合您 链接:https://pan.baidu.com/s/1jP9toqTZONWeDIcxvw1wxg?pwd8888 提取码:8888 Python采集代码下载链接:采集代码.zip - 蓝奏云 学习知识费力气,收集整理更不易。知识付费甚…

重装系统后,anaconda如何恢复

电脑中给予anaconda创建了100个虚拟环境(夸张了) 因为硬盘的问题,需要重装系统,于是搜了一下如何恢复anaconda,如下: 1. cd 到anaconda的安装路径; 2. 运行下面命令: python .\L…

建设项目管理中的 5 大预算挑战

为建设项目管理制定可靠、准确的预算是一项艰巨的任务,对于中小型建筑企业来说尤其如此。预算必须精确,同时还要考虑到每项工作的独特性和复杂性。 一项建筑行业相关调查统计了参与施工预算流程的人员所面临的最大挑战,分别是时间、预算、不…

V90伺服EPOS模式点动控制(详细介绍+完整SCL代码)

V90伺服驱动器采用西门子标准报文111加FB284(SINA_POS)详细的报文组态和功能块请参考下面文章链接: 博途1200/1500PLC V90 PN通信控制 (FB284功能块)_fb284功能块文档说明_RXXW_Dor的博客-CSDN博客文章浏览阅读5.3k次。先简单说下如何获取FB284,一般有2种方法,Startdrive软…

java项目之摄影器材租赁系统(ssm框架)

项目简介 摄影器材租赁系统实现了以下功能: 管理员:个人中心、用户管理、商家管理、器材信息管理、器材租赁管理、聊天信息管理、聊天回复管理、归还提醒管理、租赁反馈管理、论坛管理、系统管理、我的收藏管理 押金缴纳管理、扣除押金管理等等。用户&…

二百零一、Flink——Flink配置状态后端运行后报错:Can not create a Path from an empty string

一、目的 在尚硅谷学习用Flink配置状态后端的项目中,运行报错Exception in thread "main" java.lang.IllegalArgumentException: Can not create a Path from an empty string 二、Flink的状态后端(state backend)类型 (一)Memo…

Linux系统安装宝塔面板

系统安装要求 宝塔Linux面板操作系统支持:Centos、Ubuntu、Deepin、Alibaba Cloud Linux、Debian和Fedora,建议使用购买ECS后全新未操作的系统或执行初始化后的系统。 不支持32位系统。 请确认在安装宝塔面板前,未通过任何方式或程序安装Ap…

1.1 微信支付接入指引与支付安全

微信支付接入指引与支付安全 文章目录 微信支付接入指引与支付安全一、微信产品介绍1.1 付款码支付1.2 JSAPI支付1.3 小程序支付1.4 Native支付1.5 APP支付1.6 刷脸支付 二、接入指引2.1 获取商户号2.2 获取AppID2.3 绑定商户号与AppId2.4 获取秘钥和证书2.4.1 申请API秘钥2.4.…

Java进阶篇--Executors类创建常见线程池

目录 线程池架构 newSingleThreadExecutor newFixedThreadPool newCachedThreadPool newScheduledThreadPool Executors和ThreaPoolExecutor创建线程池的区别 两种提交任务的方法 线程池架构 线程池是一种线程管理的机制,用于维护和复用线程,以…

手术训练系统项目

★ 手术训练系统项目 项目描述:手术训练系统,它提供了多项功能,包括账户登录与创建、数据库与账户管理、课程管理、小组管理、成绩统计、证书发布、训练和系统设置。 职责描述: 1、训练功能开发(任务概述、任务指导、评分规则、评…

惊艳!拓世法宝AI智能数字人一体机解锁数字文博的全民体验

在数字化的潮流中,我们见证了历史与现代技术的完美融合。在今年的“国际古迹遗址日”,世界首个超时空参与式博物馆“数字藏经洞”正式与公众见面,在这里开启了一场前所未有的文化探索之旅。 时间和空间被艺术化的数字技术巧妙地折叠&#xf…

建链时,please install openssl! use “openssl version“ command to check.

please install openssl! use “openssl version” command to check. 但是我已经安装了 编辑build_chain.sh文件 也可以用vi或者gedit命令 将 [ ! -z “ ( o p e n s s l v e r s i o n ∣ g r e p 1.0.2 ) " ] ∣ ∣ [ ! − z " (openssl version | grep 1.0.2)…

YOLO目标检测——红绿灯检测数据集【含对应voc、coco和yolo三种格式标签】

实际项目应用:红绿灯检测数据集在自动驾驶、交通安全监控、智能交通系统、交通流量监测和驾驶员辅助系统等领域都有广泛应用的潜力数据集说明:红绿灯检测数据集,真实场景的高质量图片数据,数据场景丰富,含有国内红绿灯…

ARM64 linux并发与同步之原子操作

卷2:调试与案例分析 第一章 并发与同步 画了两张简图,方便理解,如下: 针对并发源的问题,我接触的项目中都是SMP系统,目前大部分也都是SMP系统; 对于SMP系统,情况会更复杂。 □ 同…

第二证券:特斯拉将推出低价电动汽车?最新消息

当地时间周一,投资者接连上星期五的达观心境,美国三大股指高开高走。美联储主席鲍威尔本周到会活动时将有两次揭穿说话,投资者期望从中得到更多关于本轮加息周期完毕的信号,但也对联邦基金利率可能在更长时期内维持在高水平保持警…