mysql query 查询_mysql提供了explain query_sql进行查询分析

2023-11-15

mysql提供了explain query_sql进行查询分析,下边是一些参数说明:

◆ ID:Query Optimizer 所选定的执行计划中查询的序列号;

◆ Select_type:所使用的查询类型,主要有以下这几种查询类型

◇ DEPENDENT SUBQUERY:子查询中内层的第一个SELECT,依赖于外部查询的结果集;

◇ DEPENDENT UNION:子查询中的UNION,且为UNION 中从第二个SELECT 开始的后面所有SELECT,同样依赖于外部查询的结果集

◇ PRIMARY:子查询中的最外层查询,注意并不是主键查询

◇ SIMPLE:除子查询或者UNION 之外的其他查询

◇ SUBQUERY:子查询内层查询的第一个SELECT,结果不依赖于外部查询结果集

◇ UNCACHEABLE SUBQUERY:结果集无法缓存的子查询

◇ UNION:UNION 语句中第二个SELECT 开始的后面所有SELECT,第一个SELECT 为PRIMARY

◇ UNION RESULT:UNION 中的合并结果

◆ Table:显示这一步所访问的数据库中的表的名称

◆ Type:告诉我们对表所使用的访问方式,主要包含如下集中类型

◇ all:全表扫描

◇ const:读常量,且最多只会有一条记录匹配,由于是常量,所以实际上只需要读一次

◇ eq_ref:最多只会有一条匹配结果,一般是通过主键或者唯一键索引来访问

◇ fulltext:

llgjyl29.com

zlgjyl36.com

bygjyl78.com

mqlylc23.com

◇ index:全索引扫描

◇ index_merge:查询中同时使用两个(或更多)索引,然后对索引结果进行merge 之后再读取表数据

◇ index_subquery:子查询中的返回结果字段组合是一个索引(或索引组合),但不是一个主键或者唯一索引

◇ rang:索引范围扫描

◇ ref:Join 语句中被驱动表索引引用查询

◇ ref_or_null:与ref 的唯一区别就是在使用索引引用查询之外再增加一个空值的查询

◇ system:系统表,表中只有一行数据

◇ unique_subquery:子查询中的返回结果字段组合是主键或者唯一约束

◆ Possible_keys:该查询可以利用的索引. 如果没有任何索引可以使用,就会显示成null,这一项内容对于优化时候索引的调整非常重要

◆ Key:MySQL Query Optimizer 从possible_keys 中所选择使用的索引

◆ Key_len:被选中使用索引的索引键长度

◆ Ref:列出是通过常量(const),还是某个表的某个字段(如果是join)来过滤(通过key)的

◆ Rows:MySQL Query Optimizer 通过系统收集到的统计信息估算出来的结果集记录条数

◆ Extra:查询中每一步实现的额外细节信息,主要可能会是以下内容

◇ Distinct:查找distinct 值,所以当mysql 找到了第一条匹配的结果后,将停止该值的查询而转为后面其他值的查询

◇ Full scan on NULL key:子查询中的一种优化方式,主要在遇到无法通过索引访问null值的使用使用

◇ Impossible WHERE noticed after reading const tables:MySQL Query Optimizer 通过收集到的统计信息判断出不可能存在结果

◇ No tables:Query 语句中使用FROM DUAL 或者不包含任何FROM 子句

◇ Not exists:在某些左连接中MySQL Query Optimizer 所通过改变原有Query 的组成而

使用的优化方法,可以部分减少数据访问次数

◇ Range checked for each record (index map: N):通过MySQL 官方手册的描述,当MySQL Query Optimizer 没有发现好的可以使用的索引的时候,如果发现如果来自前面的表的列值已知,可能部分索引可以使用。对前面的表的每个行组合,MySQL 检查是否可以使用range 或index_merge 访问方法来索取行

◇ Select tables optimized away:当我们使用某些聚合函数来访问存在索引的某个字段的时候,MySQL Query Optimizer 会通过索引而直接一次定位到所需的数据行完成整个查

询。当然,前提是在Query 中不能有GROUP BY 操作。如使用MIN()或者MAX()的时候

◇ Using filesort:当我们的Query 中包含ORDER BY 操作,而且无法利用索引完成排序操

作的时候,MySQL Query Optimizer 不得不选择相应的排序算法来实现

◇ Using index:所需要的数据只需要在Index 即可全部获得而不需要再到表中取数据

◇ Using index for group-by:数据访问和Using index 一样,所需数据只需要读取索引即可,而当Query 中使用了GROUP BY 或者DISTINCT 子句的时候,如果分组字段也在索引中,Extra 中的信息就会是Using index for group-by

◇ Using temporary:当MySQL 在某些操作中必须使用临时表的时候,在Extra 信息中就会

出现Using temporary 。主要常见于GROUP BY 和ORDER BY 等操作中

◇ Using where:如果我们不是读取表的所有数据,或者不是仅仅通过索引就可以获取所有需要的数据,则会出现Using where 信息

◇ Using where with pushed condition:这是一个仅仅在NDBCluster 存储引擎中才会出现的信息,而且还需要通过打开Condition Pushdown 优化功能才可能会被使用。控制参数为engine_condition_pushdown

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

mysql query 查询_mysql提供了explain query_sql进行查询分析 的相关文章

  • 【hello git】初识Git

    目录 一 简述Git 二 Linux 下 Git 的安装 CentOS 2 1 基本命令 2 2 示例 三 Linux 下 Git 的安装 ubuntu 3 1 基本命令 3 2 示例 一 简述Git Git 版本控制器 记录每次的修改以及
  • matlab第三章课后答案,matlab程序设计第三章课后习题答案推荐.doc

    matlab程序设计第三章课后习题答案推荐 窗体顶端 1 p138 第6题 在同一坐标轴中绘制下列两条曲线并标注两曲线交叉点 gt gt t 0 0 01 pi gt gt x1 t gt gt y1 2 x1 0 5 gt gt x2 s
  • 桥接路由器总是掉线_tplink路由器桥接掉线怎么办

    tplink是普联技术有限公司旗下的品牌 成立于1996年 是专门从事网络与通信终端设备研发 制造和行销的业内主流厂商 那么你知道tplink路由器桥接掉线的解决方法吗 下面是学习啦小编整理的一些关于tplink路由器桥接掉线的相关资料 供
  • 命令行参数格式介绍

    命令行参数 sys argv 命令行参数列表 getopt getopt argparse argparse例子 import argparse def cmd args argparse ArgumentParser descriptio
  • vue3弃用/deep/深度穿透

    使用css时 如果需要改变孙级样式需要用到 gt gt gt 穿透 scss中增加了 deep 功能来做样式穿透 vue项目中也可以写作 v deep vue3之后之前的穿透语法虽然暂时可以正常使用 但是在编译时会抛出异常 说明在不久的将来
  • SQL NOT EXISTS讲解 (详例助理解)

    首先我们要知道对于exists和not exists 的返回值都是真假 exists 如果子查询查询到了列那么就为假 not exists 如果子查询查询不到结果则返回值为真 下面来举例子来理解not exists 先给出三个表 stude
  • 如何在Linux中查看所有正在运行的进程

    你可以使用ps命令 它能显示当前运行中进程的相关信息 包括进程的PID Linux和UNIX都支持ps命令 显示所有运行中进程的相关信息 ps命令能提供一份当前进程的快照 如果你想状态可以自动刷新 可以使用top命令 ps命令 输入下面的p
  • el search 查询排序

    sort 与query是同级的 来源 https stackoverflow com questions 20974964 python custom scripting in elasticsearch sort score order
  • Android 加载gif图,Glide

    个人中心 DownLoad Android 可以使用 Glide Picasso Fresco 等第三方库来加载 gif 图 以 Glide 为例 可以按照以下步骤加载 gif 图 1 在 build gradle 文件中添加 Glide
  • verilog – 行为,RTL和门级之间的差异

    试图完全理解Verilog的抽象级别之间的差异 我得到了每个级别的描述 但我仍然无法在游戏中得到它 对于这种情况 我将粘贴一些Verilog代码以及我对它们的看法 gt 以下代码位于行为级别 always a or b or sel beg
  • 前端,后端,全栈哪个好找工作?

    职场老油子说说 现在啥岗位不好找工作 啥 想钱多 活少 离家近 最好单位发异性 这得靠实力 运气 如果是刚毕业 啥都不懂但又想从事技术行业 可以到职场上历练 而不是说报个培训机构 他们只能解决你的焦虑问题 而不是实际问题 如果只是混个工作
  • Vue3-自定义轮播图插件(逐步-1)

    1 大致框架建好 在src文件下新建一个文件XX 在XX中建立一个index vue作为主页面 在文件XX里建一个components文件用于存放组件 在components文件中建一个slideBox vue来写我们的轮播图主体 在sli
  • BGP总结

    BGP总结 BGP 边界网关协议 使用范围 BGP范围 在AS之间使用的协议 协议的特点 算法 路径矢量型 没有算法 协议是否传递网络掩码 传递网络掩码 支持VLSM CIDR 协议消息数据包封装 基于TCP封装 端口号 179 AS 自治
  • mybatis中代码复用问题resultMap、sql、include标签

    xml映射文件 对于重复出现的sql 片段可以使用sql标签提取出来 在使用的地方使用include标签引用即可 MyBatis之ResultMap标签 ResultMap标签基本作用 建立SQL查询结果字段与实体属性的映射关系信息 在深入
  • 华为OD机试 - 求符合要求的结对方式(Java )

    题目描述 用一个数组A代表程序员的工作能力 公司想通过结对编程的方式提高员工的能力 假设结对后的能力为两个员工的能力之和 求一共有多少种结对方式使结对后能力为N 输入描述 5 1 2 2 2 3 4 第一行为员工的总人数 取值范围 1 10
  • Mxnet在Windows10, vs2015平台的编译及开发-CPU版本

    环境 基础配置 Windows10 cmake3 11 1 vs2015 QT5 11 1 mxnet配置 OpenBLAS v0 2 9 Win64 int32 opencv3 4 1 相关资源百度云链接 https pan baidu
  • 机器学习——L1范数充当正则项,让模型获得稀疏解,解决过拟合问题

    问 使用L2范数正则项比L1范数正则项得到的是更为稀疏的解 答 错误 L1范数正则项得到的是更稀疏的解 因为在L1正则项中 惩罚项是每个参数绝对值之和 而在L2正则项中 惩罚项是每个参数平方的和 L1正则项可以压缩参数中的小值 更容易导致一
  • MongoDB wiredTiger存储引擎下的存储方式LSM和B-Tree比较

    前段时间做拦截件监控的时候把拦截件生命期存入mongodb 因生命期有各种变化 因此对此表的更新写操作非常多 老大给我看了一篇文章 才知道mongodb已经支持lsm存储方式了 原文如连接 https github com wiredtig
  • MongoDB安装时无法启动服务

    在安装MongoDB数据库的时候 有可能出现安装速度较慢 然后取消安装以后 再一次重新去安装的时候 在安装的最后一步可能会出现无法启动服务的现象 这种情况直接点击Ignore 完成安装以后 打开DOS窗口 使用该命令将MongDB服务删除掉

随机推荐

  • Qt UI 入门之QPushbutton

    Qt UI 入门之QPushbutton QPushbutton
  • 邻接表图,增加、删除、修改,功能齐全,有双权和有单权

    刚刚考完 纪念一下 虽说不是考试提交的最终代码 但是是我提前准备的考试源码 供给考试使用 这是单权 下面是双权的 include
  • linux jobs命令

    原文链接 http blog 163 com a7701 126 blog static 20821732201276231717 fg bg jobs ctrl z都是跟系统任务有关的 虽然现在基本上不怎么需要用到这些命令 但学会了也是很
  • AtCoder Beginner Contest 313

    A To Be Saikyo atcoder jp AC代码 include
  • Android EventBus收不到消息事件?又给自己挖坑了吧

    骚年 老给自己挖坑 该扇嘴巴子了 检查一下看是不是以下几种情况 没有register事件 事件类没对上号 比如导错包 接收事件的方法不是public 事件被优先级更高的拦截且中断了
  • 怎么将webm文件转换成MP4格式在手机上播放

    由于各品 不同型号的手机配置不同 手机支持的视频格式也可能不同 比较常见的就是视频格式转换 即将手机不支持播放的格式视频转换成手机支持的格式视频 手机最常用的格式是MP4 3GP 3G2等格式 所以我们只需将在电脑上下载的视频转换成这些适合
  • 想用Python做副业?看这一篇就够了

    大家好 我是耿直 随着人工智能 大数据 物联网的广泛应用 与之紧密关联的Python技术开始受到人们的极大关注 各行业对Python技术服务的需求量呈指数级暴增 尤以爬虫技术服务为甚 供不应求早已成为常态 而近两年受到各种不可抗力的影响 做
  • Linux(Centos7) 运行脚本程序,终端只返回 “已杀死”

    最近在实验室服务器上跑代码 没跑多久就显示 已杀死 而且只显示已杀死 没有任何其他打印和日志 1 确定不是代码的bug 2 网上搜了一大堆 全说是OOM的问题 就是代码消耗内存太多 被OOM killer杀死 但是我用的服务器内存确定充足
  • 百度地图marker点击切换icon以及上一个icon恢复原样

    var preMarker this map addEventListener click function e console log e if e overlay e overlay toString object Marker var
  • openresty+lua安装

    一 下载软件 下载ngx openresty xxx tar gz并解压 wget https openresty org download ngx openresty 1 9 7 1 tar gz ngx openresty xxx bu
  • 将包含children的数据解析构成iview的cascader或者树行需要的结构

    function convertTree rst const result 遍历 tree rst forEach item gt 解构赋值 let value value label label children children ite
  • 使用VS Code开发Arduino

    文章目录 目的 软件安装 快速使用 更多说明 编译输出时中文乱码 Arduino扩展配置说明 使用 arduino cli 总结 目的 Arduino官方的IDE作为编辑器的功能挺简陋的 用起来并不是很舒服 相比较之下用VS Code Vi
  • 面试官:说说TCP如何实现可靠传输

    今天来讲一下TCP是如何保证可靠传输的 这也是面试常问的一个题目 这个问题不单止能看出你是否真的了解TCP原理 更看出你是否有一个总结的能力 我们从三个部分来讲TCP是如何实现可靠传输的 滑动窗口 首先是讲TCP中的滑动窗口 它和TCP的可
  • 论文阅读: GeoNet: Unsupervised Learning of Dense Depth, Optical Flow and Camera Pose(CVPR2018)

    CVPR2018 GeoNet Unsupervised Learning of Dense Depth Optical Flow and Camera Pose 提出了一个联合估计深度 光流和pose的网络 这是在left right c
  • Javascript设计模式-04-工厂模式

    Javascript设计模式 04 工厂模式 简单工厂 抽象工厂 简介 工厂模式定义一个用于创建对象的接口 这个接口由子类决定实例化哪一个类 该模式使一个类的实例化延迟到了子类 而子类可以重写接口方法以便创建的时候指定自己的对象类型 个人理
  • webview跳转第三方APP

    hello 又是我鑫鑫 前言 这吃给大家带来的博客是关于webview跳转第三方APP的 相信这个问题也为难过各位 那么话不多说 我直接上代码 MainActivity java 这里的活动名我没有改 使用的话 将所有的Contact Cu
  • C规范编辑笔记(十三)

    往期文章 C规范编辑笔记 一 C规范编辑笔记 二 C规范编辑笔记 三 C规范编辑笔记 四 C规范编辑笔记 五 C规范编辑笔记 六 C规范编辑笔记 七 C规范编辑笔记 八 C规范编辑笔记 九 C规则编辑笔记 十 C规范编辑笔记 十一 C规范编
  • 线性表技巧之Note001-链表的最后一个节点

    找到单链表的尾节点 通常我们遍历单链表的代码如下 list 指向单链表的头节点 因此 list gt next 指向链表的第一个节点 LNode node list gt next while node NULL node node gt
  • Qt项目环境构建

    工欲善其事必先利其器 使用Qt来进行开发 得先配置好一个合适的环境 下面是我关于Qt项目环境构建的一些小结 Qt的项目构建主要依赖 pro文件 和 pri文件 include包含文件 提供pro的复用性高的东西给多个项目包含 所以新建一个Q
  • mysql query 查询_mysql提供了explain query_sql进行查询分析

    mysql提供了explain query sql进行查询分析 下边是一些参数说明 ID Query Optimizer 所选定的执行计划中查询的序列号 Select type 所使用的查询类型 主要有以下这几种查询类型 DEPENDENT