当前位置: 首页 > news >正文

Mysql执行计划(上)

1、执行计划的概念

执行计划是什么:使用EXPLAIN关键字可以模拟优化器执行SQL查询语句,从而知道MySQL是如何处理你的SQL语句的。

作用:分析你的查询语句或是表结构的性能瓶颈

语法:Explain + SQL语句

执行计划输出内容介绍:表的读取顺序、数据读取操作的操作类型、哪些索引可以使用、哪些索引被实际使用、表之间的引用、每张表有多少行被优化器查询。

执行计划包含的信息:

2、 执行计划各字段

2.1执行计划-ID

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

规则:

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

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

第一种情况 ID相同

第二种情况 ID不同

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

第三种情况 ID相同又不同

id如果相同,可以认为是一组,从上往下顺序执行;

在所有组中,id值越大,优先级越高,越先执行

2.2执行计划-select_type

查询的类型,主要是用于区别普通查询、联合查询、子查询等复杂查询。

具体描述:

类型

描述

SIMPLE

简单的select查询,查询中不包含子查询或者UNION

PRIMARY

查询中若包含任何复杂的子部分,最外层查询则被标记为这个

SUBQUERY

在SELECT或WHERE列表中包含子查询

DERIVED

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

UNION

若第二个SELECT出现在UNION之后,则被标记为UNION;若UNION包含在FROM子句的子查询中,外层SELECT将被标记为DERIVED

UNION RESULT

从UNION表获取结果的SELECT

例子:

2.3执行计划-table

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

2.4执行计划-type

type显示的是访问类型,是较为重要的一个指标,结果值从最好到最坏依次是:

        system > const >eq_ref > ref > fulltext > ref_or_null > index_merge >unique_subquery > index_subquery > range > index > ALL

我们常用的:

        system > const > eq_ref> ref > range > index > ALL

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

Const:表示通过索引一次就找到了。

Const用于比较primary key或者unique索引。因为只匹配一行数据,所以很快

如将主键置于where列表中,MySQL就能将该查询转换为一个常量

读取本表中和关联表表中的每行组合成的一行。除了 system 和 const 类型之外, 这是最好的联接类型。当连接使用索引的所有部分时, 索引是主键或唯一非 NULL索引时, 将使用该值。eq_ref 可用于使用 = 运算符比较的索引列。比较值可以是常量或使用此表之前读取的表中的列的表达式。

Ref:非唯一性索引扫描(二级索引),返回匹配某个单独值的所有行。

本质上也是一种索引访问,它返回所有匹配某个单独值的行,然而,它可能会找到多个符合条件的行,所以他应该属于查找和扫描的混合体。

Range:只检索给定范围的行,使用一个索引来选择行。key 列显示使用了哪个索引

一般就是在你的where语句中出现了between、、in等的查询。

这种范围扫描索引扫描比全表扫描要好,因为它只需要开始于索引的某一点,而结束语另一点,不用扫描全部索引。

Index:当查询的结果全为索引列的时候,虽然也是全部扫描,但是只查询的索引库,而没有去查询数据。

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

相关文章:

Mysql执行计划(上)

1、执行计划的概念 执行计划是什么:使用EXPLAIN关键字可以模拟优化器执行SQL查询语句,从而知道MySQL是如何处理你的SQL语句的。 作用:分析你的查询语句或是表结构的性能瓶颈 语法:Explain SQL语句 执行计划输出内容介绍&#…...

使用Python+moviepy截取音频片段

一、使用AudioFileClip对象的subclip函数,截取1秒至3秒的音频 from moviepy.editor import *auAudioFileClip("/home/Download/test.mp3") # 创建对象clipau.subclip(1,3) # 截取1秒至3秒的音频clip.write_audiofile("/home/Download/clip.mp3"…...

Java学习Day19

动态SQL语句标签 1.if 用于根据条件判断是否包括某段 SQL 代码 <if test"checktext !null and check !"> 2.<choose>, <when>, <otherwise>类似于 Java 的 switch 语句&#xff0c;用于在多个条件中选择一个。 <select id"getSt…...

8.达梦数据库常用SQL

文章目录 前言1. 服务器资源1.1 CPU使用率1.2 内存使用率 2 数据库实例管理2.1 查询版本号2.2 查询ini配置2.3 查询归档配置2.4 数据库实例初始化参数2.5 查看数据库信息2.6 查看数据库实例信息2.7 查看数据库实例信息2.8 查看授权信息2.9 查询页大小&#xff0c;字符集大小2.1…...

深入理解接口测试:实用指南与最佳实践(四)IHRM管理系统实战-项目分析

​ ​ 您好&#xff0c;我是程序员小羊&#xff01; 前言 这一阶段是接口测试的学习&#xff0c;我们接下来的讲解都是使用Postman这款工具&#xff0c;当然呢Postman是现在一款非常流行的接口调试工具&#xff0c;它使用简单&#xff0c;而且功能也很强大。不仅测试人员会使用…...

程序编译及链接

你好&#xff01;感谢支持孔乙己的新作&#xff0c;本文就程序的编译及链接与大家分析我的思路。 希望能大佬们多多纠正及支持 &#xff01;&#xff01;&#xff01; 个人主页&#xff1a;爱摸鱼的孔乙己-CSDN博客 ​ ​ 1.翻译译环境与运行环境 当我们进行程序设计时&…...

route 命令介绍及使用方法

route 命令 作用&#xff1a;用于显示和操作 IP 路由表 &#xff08;show/manipulate the IP routing table&#xff09;。 在命令行下执行 route 命令添加路由&#xff0c;不会永久保存&#xff0c;当网卡重启或者机器重启后&#xff0c;该路由就会失效。 命令参数&#xf…...

力扣热题100_二叉树_226_翻转二叉树

文章目录 题目链接解题思路解题代码 题目链接 226. 翻转二叉树 给你一棵二叉树的根节点 root &#xff0c;翻转这棵二叉树&#xff0c;并返回其根节点。 示例 1&#xff1a; 输入&#xff1a;root [4,2,7,1,3,6,9] 输出&#xff1a;[4,7,2,9,6,3,1] 示例 2&#xff1a; …...

Java SpringBoot 集成 MinIO 资料

Java SpringBoot 集成 MinIO 资料 一、文档 官方文档CSDN项目示例解除Spring文件上传大小限制 二、个人实战 注意事项&#xff1a; 部署MinIO时会涉及到两个端口号&#xff0c;一个为endpoint的端口&#xff0c;一个为console的端口&#xff0c;注意不要弄混 比如&#xff1a…...

鸿蒙系统开发【加解密算法库框架】安全

加解密算法库框架 介绍 本示例使用ohos.security.cryptoFramework相关接口实现了对文本文件的加解密、签名验签操作。 实现场景如下&#xff1a; 1&#xff09;软件需要加密存储本地文本文件&#xff0c;需要调用加解密算法库框架选择密钥文本文件&#xff0c;对本地文本文…...

C语言——二维数组和字符数组

二维数组 二维数组本质上是一个行列式的组合&#xff0c;也就是二维数组是有行和列两部分构成。二维数组数据是通过行列进行解读。 定义形式&#xff1a; 类型&#xff08;说明符&#xff09; 数组名[行数&#xff08;常量表达式1&#xff09;][列数&#xff08;常量表达式…...

Python 爬虫入门(九):Scrapy安装及使用「详细介绍」

Python 爬虫入门&#xff08;九&#xff09;&#xff1a;Scrapy安装及使用「详细介绍」 前言1. Scrapy 简介2. Scrapy 的安装2.1 环境准备2.2 安装 Scrapy 3. 创建 Scrapy 项目3.1 创建项目3.2 项目结构简介 4. 编写爬虫4.1 创建爬虫4.2 解析数据4.3 运行爬虫 5. 存储数据5.1 存…...

扩展addr2line程序的功能,group_add2line() 脚本的实现

------------------------------------------------------------ author: hjjdebug date: 2024年 08月 05日 星期一 16:19:07 CST descrition: 扩展addr2line程序的功能,group_add2line() 脚本的实现 ------------------------------------------------------------ 扩展addr2…...

idea中修改项目名称

公司最近有个小项目新加了很多功能&#xff0c;在叫原先的项目名有点不合适了。所以在网上查了下资料&#xff0c;发现步骤都比较复杂。自己研究了一下找到了一个相对简单的方法&#xff0c;只需要两步&#xff0c;特此记录一下。 1.修改项目文件夹名称 关闭当前项目&#xff…...

Flink开发语言使用Java还是Scala合适?

目录 1. Flink简介 1.1 什么是Apache Flink&#xff1f; 1.2 Flink的核心组件 2. Java与Scala在Flink开发中的比较 2.1 语言特性对比 2.2 开发体验对比 3. 实际开发中的应用 3.1 使用Java进行Flink开发 3.2 使用Scala进行Flink开发 4. 关键性能和优化 4.1 性能对比 …...

C++STL专题 vector底层实现

目录 一&#xff0c; vector的手搓 1.构造函数 2. 拷贝构造的实现 3.析构函数 4.begin() end() 的实现 5.reserve的实现 6.size和capacity的实现 7.push_back的实现 8.pop_back的实现 9.empty的实现 10.insert的实现 11.erase的实现 12.resize的实现 13.clear的实…...

【Linux】装机常用配置

文章目录 1. 下载常用软件包2. 更新yum源3. vim编辑器配置4. 安装C语言和C的静态库&#xff08;换root&#xff09;5. git6. sudo给普通用户提权7. 更新git版本&#xff08;centos默认安装1.8.x&#xff0c;我们更新到2.x&#xff09;8. getch9. json10. 升级gcc版本11. 跨系统…...

oracle库PASSWORD_VERSIONS 对应的加密方式

oracle库PASSWORD_VERSIONS 对应的加密方式 10G DES 11G SHA-1 12C SHA-2-based SHA-512官方文档&#xff1a; https://docs.oracle.com/database/121/DBSEG/authentication.htm#DBSEG487...

分享一个基于微信小程序的乡村医疗上门服务预约平台(源码、调试、LW、开题、PPT)

&#x1f495;&#x1f495;作者&#xff1a;计算机源码社 &#x1f495;&#x1f495;个人简介&#xff1a;本人 八年开发经验&#xff0c;擅长Java、Python、PHP、.NET、Node.js、Android、微信小程序、爬虫、大数据、机器学习等&#xff0c;大家有这一块的问题可以一起交流&…...

切香肠(Sausage)

题目描述 有 n 条香肠&#xff0c;每条香肠的长度相等。我们打算将这些香肠切开后分给 k 名客人&#xff0c;且要求每名客人获得一样多的香肠&#xff0c;且要将所有的香肠分配完&#xff0c;不做保留。 请问最少需要切几刀才能完成&#xff1f;一刀只能切断一条香肠&#xf…...

VBA-JSON终极指南:在Excel中轻松处理JSON数据的完整教程

VBA-JSON终极指南&#xff1a;在Excel中轻松处理JSON数据的完整教程 【免费下载链接】VBA-JSON JSON conversion and parsing for VBA 项目地址: https://gitcode.com/gh_mirrors/vb/VBA-JSON 你是否经常需要在Excel中处理来自API的JSON数据&#xff1f;或者需要将Excel…...

A-47 矿山井下通信应用

矿山井下属于高噪声、强回声、长巷道、多干扰、潮湿粉尘恶劣环境&#xff0c;传统对讲、扩音、拾音设备普遍存在人声被机械噪音淹没、回声啸叫严重、通话卡顿失真、远距离拾音困难、电磁干扰杂音大等问题&#xff0c;严重影响安全生产调度与应急救援通信。A-47 模块集成AEC 回音…...

解锁Steam游戏新体验:开源成就管理工具深度解析

解锁Steam游戏新体验&#xff1a;开源成就管理工具深度解析 【免费下载链接】SteamAchievementManager A manager for game achievements in Steam. 项目地址: https://gitcode.com/gh_mirrors/st/SteamAchievementManager 你是否曾因为一个难以获得的成就而反复尝试同一…...

为什么AI时代真正稀缺的不是代码, 而是 Idea. 我因此做了一个“发现+判断”的项目

最近做项目的时候, 我越来越强烈地感觉到一件事: 现在真正卡住很多人的, 可能已经不是“怎么做”, 而是“到底做什么”。 以前做一个产品, 最大门槛通常是执行。 不会写前端, 不会搭后端, 不会部署, 不会把整个闭环跑起来。那个时候, 真正稀缺的是开发能力。 但这两年情况已…...

bootstrap怎么修改折叠面板(Accordion)的边框颜色

Accordion默认边框颜色来自.accordion-item的border-color&#xff0c;继承自Sass变量$border-color或$accordion-border-color&#xff0c;作用于border-top和border-bottom。Accordion 默认边框颜色从哪来bootstrap 的 accordion 边框颜色默认由 .accordion-item 的 border-c…...

如何掌握RePKG:Wallpaper Engine资源逆向工程的终极工具指南

如何掌握RePKG&#xff1a;Wallpaper Engine资源逆向工程的终极工具指南 【免费下载链接】repkg Wallpaper engine PKG extractor/TEX to image converter 项目地址: https://gitcode.com/gh_mirrors/re/repkg RePKG是一款专为Wallpaper Engine设计的开源命令行工具&…...

密码管理器:银行级加密守护账号安全,可视化列表一站式管理,零门槛上手适配全 Windows 系统,解决多账号密码管理混乱痛点

大家好&#xff0c;我是大飞哥。日常使用互联网的过程中&#xff0c;我们总会遇到多平台账号密码记混、明文记录易泄露、翻找密码耗时耗力的困扰&#xff0c;要么反复重置密码浪费大量时间&#xff0c;要么用记事本记录面临严重的隐私泄露风险&#xff0c;而市面上的专业工具又…...

Java入门必学:类与对象初步认识

Java是⼀⻔纯⾯向对象的语⾔&#xff0c;面向对象时一门解决问题的思想&#xff0c;主要依靠对象之间的交互完成一件事情。在面向对象的世界里&#xff0c;一切皆可以为对象一、类的定义1. 类是⽤来对⼀个实体(对象)来进行描述的&#xff0c;主要描述该实体(对象)具有哪些属性…...

工业自动化场景下耐达讯自动化的 CC-Link IE 转 Modbus TCP 技术方案与应用实践

在工业自动化行业中&#xff0c;设备间协议异构性是系统集成面临的核心挑战之一。尤其在产线升级、老旧设备接入或跨品牌系统融合过程中&#xff0c;如何高效、稳定地实现不同通信协议之间的转换&#xff0c;直接关系到数据采集的完整性、控制系统的实时性以及整体项目的实施成…...

Qwen3.5-4B-Claude-Opus详细步骤:修改系统提示词打造专属AI助教方法

Qwen3.5-4B-Claude-Opus详细步骤&#xff1a;修改系统提示词打造专属AI助教方法 1. 理解模型特性 1.1 模型基础介绍 Qwen3.5-4B-Claude-4.6-Opus-Reasoning-Distilled-GGUF是一个基于Qwen3.5-4B的推理蒸馏模型&#xff0c;特别强化了结构化分析、分步骤回答、代码与逻辑类问…...