MySQL explain学习(MySQL版本5.7.25)

2023-05-16

MySQL explain学习(MySQL版本5.7.25)

  • id
  • select_type
  • table
  • partitions
  • type(重要)
  • possible_keys
  • key
  • key_len
  • ref
  • rows
  • filtered
  • Extra

explain 包含以下几个字段
在这里插入图片描述

id

表示SQL执行的顺序,id相同从上往下执行,id不同时,值越大优先级别越高,有一种特殊情况,id可能为null,就是当使用union的时候,会有一张去重后的临时表
在这里插入图片描述

select_type

  1. SIMPLE:简单的select(不使用union或者子查询)
    在这里插入图片描述

  2. PRIMARY:最外层的select
    在这里插入图片描述

  3. UNION:查询使用了union或者union all,使用union时会多一个UNION RESULT
    union allunion

  4. UNION RESULT:查询使用union,产生的一张临时表,并且它的id为Null
    在这里插入图片描述

  5. DEPENDENT UNION:在union或union all 形成的集合查询中
    在这里插入图片描述

  6. SUBQUERY:子查询中的第一个SELECT
    在这里插入图片描述

  7. DEPENDENT SUBQUERY:子查询中的第一个select,取决于外面的查询
    在这里插入图片描述
    子查询B的查询依赖于外层A的查询
    在这里插入图片描述
    我的理解是,A表查询出来的结果会逐条执行子查询B

  8. DERIVED:派生表,

table

输出结果集的表是关于哪一张表,有时候不是真实的表名

  1. derived(x):x是数字,代表执行的id
  2. union<x,y>:在使用union时,生成的临时表名,x,y分别对应的执行id

partitions

匹配的分区,目前没有学习到

type(重要)

  1. system:表只有一行,是const的特殊情况
  2. const:最多只有一行,const用于primary key(主键)或者unique(唯一键)的比较
  3. eq_ref:特点是使用=,而且索引的所有部分都参与join且索引是主键或非空唯一键的索引
  4. ref:查找条件列使用了索引而且不为主键和唯一索引
  5. range:基于索引的。同时除了显而易见的between,and以及’>’,’<'外,in和or也是索引范围扫描
  6. index:index类型和ALL类型一样,ALL全表扫描,index是扫描索引树
  7. ALL:全表扫描

possible_keys

指出MySQL能使用哪个索引在表中找到记录,查询涉及到的字段上若在索引,则该索引将被列出,但不一定被查询使用

key

表明的是这次查找中所用到的索引

key_len

表示索引字段的最大可能值,并非时间使用长度,可以通过该列计算查询中使用的索引长度

长度越短越好

ref

显示索引的哪一列被使用了

rows

显示MySQL执行查询时必须检查的行数

filtered

表示返回结果的行数占需要读取行数的百分比
值越大越好

Extra

  1. Using where:SQL使用了where条件过滤数据(使用了where条件的SQL,需要配合explain结果中的type来综合判断)
  2. Using index:SQL所需要返回的所有列数据均在一棵索引树上,而无需访问实际的行记录(这类SQL语句往往性能较好)
  3. Using index condition:确实命中了索引,但不是所有的列数据都在索引树上,还需要访问实际的行记录
  4. Using filesort:得到所需结果集,需要对所有记录进行文件排序
    (这类SQL语句性能极差,在一个没有建立索引的列上进行了order by,就会触发filesort,常见的优化方案是,在order by的列上添加索引,避免每次查询都全量排序)
  5. Using temporary:需要建立临时表(temporary table)来暂存中间结果
    (这类SQL性能较低,典型的,group by和order by同时存在,且作用于不同的字段时,就会建立临时表,以便计算出最终的结果集)
  6. Using join buffer (Block Nested Loop):需要进行嵌套循环计算
  7. 待补充
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MySQL explain学习(MySQL版本5.7.25) 的相关文章

随机推荐

  • java中的字符串排序

    要求 xff1a 对 34 abc 34 34 fcc 34 34 egfd 34 34 asd 34 34 rtgh 34 34 deghk 34 34 fcc 34 字段进行排序 xff0c 要求满足其为升序排列同时每个字符串里也是升序
  • 基于PySide6的MySql数据库快照备份与恢复软件

    db camera 软件介绍 db camera是一款MySql数据库备份 xff08 快照保存 xff09 与恢复软件 功能上与dump类似 xff0c 但是提供了相对有好的交互界面 xff0c 能够有效地管理导出的sql文件 使用场景
  • 2023-04-14 Linux连接WiFi常用命令,用命令打开、搜索、连接wifi,在buildroot 嵌入式系统上测试,用 wifi_start.sh WIFI名称 WIFI密码 命令格式连接

    一 ifconfig 命令查看打开的网卡 二 ifconfig a 命令查看所有的网卡 xff0c 包括关闭的 三 打开WIFI命令 xff1a ifconfig wlan0 up xff1b 关闭WIFI命令 xff1a ifconfig
  • 基于ubuntu20.04的anaconda和cuda安装

    文章目录 使用服务器训练深度学习模型环境安装 ubuntu20 04 ubuntu 20 04安装anaconda安装显卡驱动安装cuda安装 xff08 cuda 11 0 cudnn安装 cudnn 11 0 使用服务器训练深度学习模型
  • 创建Web天气插件之vue3.0(包含2.x)

    1 首先选择一个天气插件 xff0c 这里小编使用和风天气插件 xff0c 见和风天气插件 和风天气插件产品 xff0c 免费 跨终端 适配你的网站 APP 公众号 2 小编这里写的是vue3 0的移动端项目 xff0c 所以使用的是天气简
  • MySQL占用CPU过高,排查原因及解决的多种方式法

    一 mysql中的wait timeout坑 mysql gt show variables like 39 timeout 39 首先你要明白 wait timeout 指的是mysql在关闭一个非交互的连接之前所要等待的秒数 xff0c
  • Linux系统Debian安装

    虚拟机VMware安装Debian 小白教程 最近学习中顺便做了个文档 xff0c 下载 一 下载Debian 网址 xff1a https www debian org distrib 二 安装Debian8 1 选择稍后安装操作系统 2
  • sqlite3

    一 版本 从 www sqlite org 网站可下载到最新的 sqlite 代码和编译版本 写此文章时 xff0c 最新代码是 3 3 17 版本 二 基本编译 把 sqlite3 c 和 sqlite3 h 添加到工程 xff0c 再新
  • arduino esp8266开发板下载出错解决方法

    常规 arduino esp8266开发板下载安装流程 xff1a 第一步 xff0c 在arduino界面 xff0c 选择 文件 首选项 xff1a 找到附加开发板管理器网址 xff0c 将下面网址复制进去 xff1a http ard
  • linux C编程4-系统信息/时间/内存分配/随机数/定时器

    目录 1 获取系统信息 1 1 uname 函数 1 2 sysinfo 函数 1 3 gethostname 函数 1 4 sysconf 函数 1 5 getpagesize 函数 2 时间 日期 2 1 查看utc时间 2 2 查看系
  • IntelliJ IDEA插件之下载和安装方式

    IntelliJ IDEA插件下载与安装 下载方式官网下载如下图 IDEA内下载如下图 安装方式直接安装如下图 下载插件到本地安装如下图 下载方式 官网下载 如下图 IDEA内下载 如下图 进入Settings页面 xff08 File g
  • IntelliJ IDEA插件之TranslationPlugin

    IntelliJ IDEA插件之TranslationPlugin 下载地址安装插件概述使用如下图 下载地址 下载地址 安装插件 安装方式 概述 翻译他人代码或者源码中的英文 使用如下图
  • IntelliJ IDEA插件之Power Mode II

    IntelliJ IDEA插件之Power Mode II 下载地址安装插件概述使用如下图 下载地址 下载地址 安装插件 安装方式 概述 Power Mode II是写代码的时候体验狂拽酷炫的效果 使用如下图
  • IntelliJ IDEA插件之Background Image Plus +

    IntelliJ IDEA插件之Background Image Plus 43 下载地址安装插件概述 下载地址 下载地址 安装插件 安装方式 概述 IDEA 背景修改插件
  • IntelliJ IDEA插件之Free MyBatis plugin

    IntelliJ IDEA插件之Free MyBatis plugin 下载地址安装插件概述 下载地址 下载地址 安装插件 安装方式 概述 mapper接口与对应xml文件对应
  • MySQL Workbench 8.0 CE 汉化包下载

    MySQL Workbench 8 0 CE 汉化包下载 下载地址 xff1a 汉化文件下载 下载提示 xff1a 下载过程进度文件页面右键另存为即可保存文件到本地 1 把下载好的文件后放到此目录下替换此文件 C Program Files
  • IntelliJ IDEA插件之CodeGlance

    IntelliJ IDEA插件之CodeGlance 下载插件安装插件概述 下载插件 下载地址 安装插件 安装方式 概述 将类似于Sublime中的代码的微型地图嵌入到编辑器窗格中 使用您自定义的颜色对亮色和深色主题进行语法突出显示
  • IDEA Easy Code使用记录

    下载安装 xff08 忽略 xff09 设置 设置在idea的 Other Settings里面 分4个选项 Type Mapper 类型映射 xff08 数据字段和java包装器映射 xff09 Template Setting 模板设置
  • windows 10 安装MySQL5.7.25(支持多个MySQL实例)

    windows 10 安装MySQL5 7 25 下载安装包解压到对应路径 创建my ini 配置文件 xff0c 内容如下 span class token punctuation span mysql span class token
  • MySQL explain学习(MySQL版本5.7.25)

    MySQL explain学习 xff08 MySQL版本5 7 25 xff09 idselect typetablepartitionstype xff08 重要 xff09 possible keyskeykey lenrefrows