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

explain工具优化mysql需要达到什么级别?

explain工具优化mysql需要达到什么级别?

  • 一、explain工具是什么?
  • 二、explain查询后各字段的含义
  • 三、explain查询后type字段有哪些类型?
  • 四、type类型需要优化到哪个阶段?

一、explain工具是什么?

explain是什么?使用EXPLAIN关键字可以模拟优化器执行SQL查询语句,从而知道MySQL是如何处理你的SQL语句的。分析你的查询语句或是表结构的性能瓶颈。
explain的使用方法非常的简单,explain+sql就可以了。下面我们来简单的执行一条

mysql> explain select * from student where id=1000;
+----+-------------+---------+------------+-------+---------------+---------+---------+-------+------+----------+-------+
| id | select_type | table   | partitions | type  | possible_keys | key     | key_len | ref   | rows | filtered | Extra |
+----+-------------+---------+------------+-------+---------------+---------+---------+-------+------+----------+-------+
|  1 | SIMPLE      | student | NULL       | const | PRIMARY       | PRIMARY | 4       | const |    1 |   100.00 | NULL  |
+----+-------------+---------+------------+-------+---------------+---------+---------+-------+------+----------+-------+
1 row in set, 1 warning (0.04 sec)

二、explain查询后各字段的含义

  • id:在一个大的查询语句中每个SELECT关键字都对应一个 唯一的id
  • select_type:SELECT关键字对应的那个查询的类型
  • table :表名
  • partitions :匹配的分区信息
  • type :针对单表的访问方法
  • possible_keys: 可能用到的索引
  • key :实际上使用的索引
  • key_len: 实际使用到的索引长度
  • ref :当使用索引列等值查询时,与索引列进行等值匹配的对象信息
  • rows: 预估的需要读取的记录条数
  • filtered:某个表经过搜索条件过滤后剩余记录条数的百分比
  • Extra: 一些额外的信息

三、explain查询后type字段有哪些类型?

在这里插入图片描述

  • all :表中没有任何索引,每次查询需要全表扫描
  • index :表中有主键索引,扫描全表索引,每次查询需要全表扫描索引文件,通常比all快一些,但也很慢,需优化。
  • range :范围查询,例如select * from student where id >10; < > between
  • const:通过索引一次就可以找到,例如:select * from student where id =10;
  • ref:指的是这个非唯一键索引扫描,例如我们给student表的name字段加个普通索引,有
select * from student where name = '张三';
  • eq_ref:这个主要用于多表查询。其含义主要是唯一索引扫描对于每个索引列表中只有一条记录与之匹配。常用于主键或者唯一索引扫描,这可能是const之外最好的链接类型了,简单的select查询不会出现这种type。
    这个第二个出现这个eq_ref,其实这个也比较好理解。eq_ref - 想象你有两张桌子。表A包含列(id,text),其中id是主键。表B具有相同的列(id,text),其中id是主键。表A包含以下数据:
1, Hello 
2, How are

表B有以下数据:

1, world!
2, you?

想象一下eq_ref为A和B之间的JOIN:

select A.text, B.text where A.ID = B.ID

这个JOIN非常快,因为对于表A中扫描的每一行,表B中只能有一行满足JOIN条件。一个,不超过一个。那是因为B.id是独一无二的。

四、type类型需要优化到哪个阶段?

至少是需要优化到range级别的,这里我们可以参考阿里巴巴开发手册的推荐:
在这里插入图片描述
如果我们的type是all或者index级别均是需要优化的。

相关文章:

explain工具优化mysql需要达到什么级别?

explain工具优化mysql需要达到什么级别&#xff1f; 一、explain工具是什么&#xff1f;二、explain查询后各字段的含义三、explain查询后type字段有哪些类型&#xff1f;四、type类型需要优化到哪个阶段&#xff1f; 一、explain工具是什么&#xff1f; explain是什么&#x…...

RHCE作业

架设一台NFS服务器&#xff0c;并按照以下要求配置 1、开放/nfs/shared目录&#xff0c;供所有用户查询资料 2、开放/nfs/upload目录&#xff0c;为192.168.xxx.0/24网段主机可以上传目录&#xff0c;并将所有用户及所属的组映射为nfs-upload,其UID和GID均为210 3、将/home/to…...

在Java中调企微机器人发送消息到群里

目录 如何使用群机器人 消息类型及数据格式 文本类型 markdown类型 图片类型 图文类型 文件类型 模版卡片类型 文本通知模版卡片 图文展示模版卡片 消息发送频率限制 文件上传接口 Java 执行语句 String url "webhook的Url"; String result HttpReque…...

鸿蒙开发(四)UIAbility和Page交互

通过上一篇的学习&#xff0c;相信大家对UIAbility已经有了初步的认知。在上篇中&#xff0c;我们最后实现了一个小demo&#xff0c;从一个UIAbility调起了另外一个UIAbility。当时我提到过&#xff0c;暂不实现比如点击EntryAbility中的控件去触发跳转&#xff0c;而是在Entry…...

K8s(七)四层代理Service

Service概述 Service在Kubernetes中提供了一种抽象的方式来公开应用程序的网络访问&#xff0c;并提供了负载均衡和服务发现等功能&#xff0c;使得应用程序在集群内外都能够可靠地进行访问。 每个Service都会自动关联一个对应的Endpoint。当创建一个Service时&#xff0c;Ku…...

鼎捷软件获评国家级智能制造“AAA级集成实施+AA级咨询设计”供应商

为贯彻落实《“十四五”智能制造发展规划》&#xff0c;健全智能制造系统解决方案供应商(以下简称“供应商”)分类分级体系&#xff0c;推动供应商规范有序发展&#xff0c;智能制造系统解决方案供应商联盟组织开展了供应商分类分级评定(第一批)工作&#xff0c;旨在遴选一批专…...

(循环依赖问题)学习spring的第九天

Bean实例的属性填充 Spring在属性注入时 , 分为如下几种情况 : 注入单向对象引用 : 如usersevice里注入userdao , userdao里没有注入其他属性 注入双向对象引用 : 如usersevice里注入userdao , userdao也注入usersevice属性 二 . 着重看循环依赖问题 (搞清原理即可) 问题提出…...

Kotlin的数据类

引言 我们在做项目中涉及到各种数据类的处理&#xff0c;很多很杂乱。难免一个人的知识点有盲点&#xff0c;所以想着做个整理。 定义 在平时的使用中&#xff0c;我们会用到一些类来保持一些数据或状态&#xff0c;我们习惯上成为bean或者entity&#xff0c;也有的定义为mod…...

PTA 7-13 统计工龄

给定公司N名员工的工龄&#xff0c;要求按工龄增序输出每个工龄段有多少员工。 输入格式: 输入首先给出正整数N&#xff08;≤105&#xff09;&#xff0c;即员工总人数&#xff1b;随后给出N个整数&#xff0c;即每个员工的工龄&#xff0c;范围在[0, 50]。 输出格式: 按工…...

算法常用思路总结

思路 1. 求数组中最大最小值思路代码 2. 计算阶乘思路&#xff1a;代码&#xff1a; 3. 得到数字的每一位思路代码 4. 计算时间类型5. 最大公约数、最小公倍数6. 循环数组的思想题目&#xff1a;猴子选大王代码 补充经典例题1. 复试四则运算题目内容题解 2. 数列求和题目内容题…...

Leetcode 3016. Minimum Number of Pushes to Type Word II

Leetcode 3016. Minimum Number of Pushes to Type Word II 1. 解题思路2. 代码实现 题目链接&#xff1a;3016. Minimum Number of Pushes to Type Word II 1. 解题思路 这道题的话思路其实还是蛮简单的&#xff0c;显然我们的目的是要令对给定的word在键盘上敲击的次数最小…...

node.js如何将webp转jpg图片

在Node.js中&#xff0c;可以使用一些库来实现将WebP图像转换为JPEG。一个常用的库是sharp&#xff0c;它是一个快速、高效的图像处理库。以下是一个简单的Node.js脚本示例&#xff0c;演示如何使用sharp库将WebP转换为JPEG&#xff1a; 首先&#xff0c;确保已经安装了sharp库…...

达梦数据库 忘记 SYSDBA 密码 处理方法

DM 提供数据库身份验证模式、基于操作系统的身份验证模式、外部身份验证模式和 UKEY 身份验证模式来保护对数据库访问的安全。数据库身份验证模式需要利用数据库口令&#xff0c; 即在创建或修改用户时指定用户口令&#xff0c;用户在登录时输入对应口令进行身份验证;基于操作 …...

SpringBoot ES 重建 Mapping

SpringBoot ES 重建 Mapping 1 复制数据2 删除老索引3 重建索引4 复制回数据 1 复制数据 POST http://elastic:123456127.0.0.1:9200/_reindex{"source": {"index": "老索引名称"},"dest": {"index": "备份索引名称&q…...

【51单片机】矩阵按键

0、前言 参考&#xff1a;普中 51 单片机开发攻略 1、硬件 2、软件 main.c #include <reg52.h> #include <intrins.h> #include "delayms.h"typedef unsigned int u16; //对数据类型进行声明定义 typedef unsigned char u8; #define GPIO_KEY P1 #d…...

Redis- AOF刷盘策略

在Redis中&#xff0c;appendfsync everysec 是一个与持久化相关的配置选项&#xff0c;它属于 Redis 的 AOF&#xff08;Append Only File&#xff09;持久化策略的一部分。 Redis支持两种主要的数据持久化方式&#xff1a;RDB&#xff08;快照&#xff09;和AOF&#xff08;…...

标量、向量、矩阵和张量的区别?

标量、向量、矩阵和张量是数学和物理学中常用的概念&#xff0c;它们在多维数据表示和处理中扮演着关键角色。下面是这些概念的基本区别&#xff1a; 标量&#xff08;Scalar&#xff09;: -标量是单个数字&#xff0c;用于表示单一的量。 -它没有方向。 -在数学中&#xff0…...

【51单片机】动态数码管

0、前言 参考&#xff1a; 普中51单片机开发攻略–A2.pdf 1、数码管介绍 上一章我们主要是介绍一位数码管的内部结构及控制原理。下面我们再来介 绍下多位数码管及动态显示原理的相关知识。 1.1 多位数码管简介 2、74HC245 和 74HC138 芯片介绍 2.1 74HC245 芯片简介 2.2 7…...

Webpack5入门到原理22:提升打包构建速度

HotModuleReplacement 为什么 开发时我们修改了其中一个模块代码&#xff0c;Webpack 默认会将所有模块全部重新打包编译&#xff0c;速度很慢。 所以我们需要做到修改某个模块代码&#xff0c;就只有这个模块代码需要重新打包编译&#xff0c;其他模块不变&#xff0c;这样…...

EXCEL VBA获取幸运数字号码

EXCELVBA获取幸运数字号码 以下就是VBA幸运号码产生的程序&#xff0c;复制粘贴到VBA代码框即可运行 Option Base 1 Sub 幸运号码()Dim n As Integer, i As Integer, j As IntegerDim l() As Integern Application.InputBox("请输入需要产生幸运号码的数量&#xff1a;…...

如何快速掌握AI变声神器RVC:面向初学者的完整指南

如何快速掌握AI变声神器RVC&#xff1a;面向初学者的完整指南 【免费下载链接】Retrieval-based-Voice-Conversion-WebUI 语音数据小于等于10分钟也可以用来训练一个优秀的变声模型&#xff01; 项目地址: https://gitcode.com/GitHub_Trending/re/Retrieval-based-Voice-Con…...

【第四周】论文精读:Frustratingly Simple Retrieval Improves Challenging, Reasoning-Intensive Benchmarks

极简检索即可大幅刷新高难度推理基准主流观点认为简单RAG无法提升MMLU、MATH、GPQA等高难度推理任务&#xff0c;甚至会损害性能&#xff1b;本文推翻这一共识&#xff0c;证明核心瓶颈并非检索范式&#xff0c;而是缺少高质量、广覆盖、可单机部署的检索库&#xff1b;提出COM…...

智能家居选遥控器?RF 2.4G vs 蓝牙 vs IR 保姆级对比指南

智能家居遥控技术终极对决&#xff1a;RF 2.4G vs 蓝牙 vs IR 深度解析 当你深夜躺在沙发上想调暗灯光&#xff0c;却发现必须起身对准空调才能操作——这种尴尬正是选错遥控技术的代价。智能家居的"最后一米"控制体验&#xff0c;往往取决于那只看不见的传输协议。本…...

HLAE高效创作指南:释放Source引擎电影级视觉潜能

HLAE高效创作指南&#xff1a;释放Source引擎电影级视觉潜能 【免费下载链接】advancedfx Half-Life Advanced Effects (HLAE) is a tool to enrich Source (mainly CS:GO) engine based movie making. 项目地址: https://gitcode.com/gh_mirrors/ad/advancedfx 一、核心…...

Apache James邮件服务器企业级部署与安全配置指南

Apache James邮件服务器企业级部署与安全配置指南 【免费下载链接】james-project James Project是一个用于电子邮件服务器的开源软件。适用于需要为其邮件基础设施提供强大和可靠的邮件传输代理的企业和组织。具有可扩展性、灵活性和易于使用的特点。 项目地址: https://git…...

智能序列自动化执行完全指南:从技能管理痛点到战斗效能提升的5步解决方案

智能序列自动化执行完全指南&#xff1a;从技能管理痛点到战斗效能提升的5步解决方案 【免费下载链接】GSE-Advanced-Macro-Compiler GSE is an alternative advanced macro editor and engine for World of Warcraft. It uses Travis for UnitTests, Coveralls to report on t…...

避坑指南:STM32磁编码器校准常见的5个错误及解决方案

STM32磁编码器校准实战&#xff1a;5个典型错误分析与高阶解决方案 磁编码器在步进电机控制系统中扮演着关键角色&#xff0c;而MT6816作为国产AMR技术代表芯片&#xff0c;其14位高精度输出为位置检测提供了可靠保障。但在实际校准过程中&#xff0c;开发者常会遇到CALI_Error…...

Llama-3.2V-11B-cot实操手册:构建带反馈机制的迭代式视觉推理Agent

Llama-3.2V-11B-cot实操手册&#xff1a;构建带反馈机制的迭代式视觉推理Agent 你有没有遇到过这种情况&#xff1f;给AI看一张复杂的图表或流程图&#xff0c;它要么答非所问&#xff0c;要么只能给出一个笼统的、没有逻辑链条的答案。你心里想&#xff1a;“它到底是怎么得出…...

保姆级教程:深求·墨鉴Podman部署全流程,小白也能轻松搞定

保姆级教程&#xff1a;深求墨鉴Podman部署全流程&#xff0c;小白也能轻松搞定 1. 为什么选择Podman部署深求墨鉴&#xff1f; 传统Docker部署方式虽然常见&#xff0c;但对于深求墨鉴这样的轻量级OCR工具来说&#xff0c;Podman提供了更优雅的解决方案。Podman是一款无需守…...

动漫IP商业化新路径:AnythingtoRealCharacters2511助力二次元角色真人化营销落地

动漫IP商业化新路径&#xff1a;AnythingtoRealCharacters2511助力二次元角色真人化营销落地 1. 动漫角色真人化的商业价值 动漫IP的商业化一直是内容产业的重要课题。传统的周边商品、联名合作虽然有效&#xff0c;但缺乏突破性创新。随着AI技术的发展&#xff0c;动漫角色真…...