面试官:MySQL explain你会关注哪些字段

news2024/11/30 2:33:49
编号字段名称字段说明重要性
1idSELECT查询序号,即为sql语句执行的顺序。数字越大越优先执行1、2、3...★★
2select_typeselect类型,用于区分是普通查询、子查询或联合查询simple:简单的查询,不含子查询和联合查询primary:子查询的最外层查询为primaryunion:在 union、union all 和子查询中的第二个和随后的 select为 uniondependent union:各个小查询都依赖于外层查询的话,那除了最左边的那个小查询之外,其余的小查询就是 dependent unionunion result:从union表获取结果的 select为 union resultsebquery:在select或者where列表中包含子查询(不在from子句中)dependent sebquery:在 select 或者 where 列表中包含子查询derived:在 form 列表中包含的子查询被标记为 derived,也叫做派生类uncacheable sebquery:一个子查询的结果不能被缓存uncacheable union:表示 union 的查询结果不能被缓存★★
3table表名或者别名,可能是临时表或者 union 合并结果集table_name
4type访问类型,表示以何种方式去访问数据库system:系统表const:最多只能匹配到一条数据eq_ref:当进行等值联表查询使用主键索引或者唯一性非空索引进行数据查找ref:查询使用的字段是个非唯一性索引索ref_or_null:字段既需要关联条件,也需要 null 值index_merge:在查询过程中需要多个索引组合使用unique_subquery:利用唯一索引来关联子查询,不再扫描全表index_subquery:利用索引来关联子查询,不再扫描全表range:利用索引查询的时候限制了范围,在指定范围内进行查询index:全索引扫描all:全表扫描system > const > eq_ref > ref > fulltext > ref_or_null > index_merge > unique_subquery > index_subquery > range > index > ALL★★★★★
5possible_keys显示查询可能使用哪些索引来查找索引名称★★
6key实际使用的索引索引名称★★★
7key_len索引中使用的字节数数值★★★
8refref列显示使用哪个列或常数与key一起从表中查询列名或const★★★
9rows显示MYSQL执行查询的行数,数值越大越不好数值★★★★★
10filtered百分比值, 表示存储引擎返回的数据经过滤后, 剩下多少满足查询条件记录数量的比例百分比★★★★
11extraMySQL解决查询的详细信息using filtersort:说明 mysql 无法利用索引进行排序,只能利用排序算法进行排序using index:表示当前的查询是覆盖索引的,直接从索引中读取数据using where:使用 where 进行条件过滤using temporary :建立临时表来保存中间结果,查询完成之后把临时表删除using join buffer:使用连接缓存impossible where:where 语句的结果总是 false★★★★

1. id

id就是select查询序号,标志sql语句执行的顺序,数字大的先执行。

2.select_type

SELECT类型,它有以下几种值

2.1 SIMPLE

它表示简单的select,没有联合查询和子查询

2.2 PRIMARY

在有子查询的语句中,最外层的select查询就是primary

2.3 union

在 union、union all 和子查询中的第二个和后面的 select 会被标记为 union

2.4 dependent union

在包含 union 或者 union all 的大查询中,如果各个小查询都依赖于外层查询的话,那除了最左边的那个小查询之外,其余的小查询的 select_type 的值就是 dependent union

2.5 union result

从 union 表获取结果的 select 会被标记为 union result

2.6 sebquery

在 select 或者 where 列表中包含子查询(不在from子句中)

2.7 dependent sebquery

子查询中的第一个 select(不在 from 子句中),并且取决于外层查询

2.8 derived

在 form 列表中包含的子查询被标记为 derived,也叫做派生类

2.9 uncacheable sebquery

一个子查询的结果不能被缓存

2.10 uncacheable union

表示 union 的查询结果不能被缓存

3 Table

explain 语句访问的表名或者别名

4 type

访问类型,表示以何种方式去访问数据库

4.1 system

表仅有一行,这是const类型的特列

4.2 const

表最多有一个匹配行,const用于比较primary key 或者unique索引。

4.3 eq_ref

当进行等值联表查询使用主键索引或者唯一性非空索引进行数据查找

4.4 ref

查询使用的字段是个非唯一性索引索

4.5 ref_or_null

字段既需要关联条件,也需要 null 值

4.6 index_merge

在查询过程中需要多个索引组合使用

4.7 unique_subquery

利用唯一索引来关联子查询,不再扫描全表

4.8 index_subquery

利用索引来关联子查询,不再扫描全表

4.9 range

利用索引查询的时候限制了范围,在指定范围内进行查询

4.10 index

全索引扫描

4.11 ALL

全表扫描

5 possible_keys

显示查询可能使用哪些索引来查找,可能应用在这张表中的索引,一个或多个,查询涉及到的字段上若存在索引,则该索引将被列出,但不一定被查询实际使用

6 keys

实际使用的索引,如果为 null ,则表示没有使用索引

7 key_len

MYSQL使用的索引长度

8 ref

ref列显示使用哪个列或常数与key一起从表中查询

9 rows

显示MYSQL执行查询的行数,数值越大越不好

10 filtered

百分比值, 表示存储引擎返回的数据经过滤后, 剩下多少满足查询条件记录数量的比例.

11 Extra

该列包含MySQL解决查询的详细信息。

  • using filtersort:说明 mysql 无法利用索引进行排序,只能利用排序算法进行排序
  • using index:表示当前的查询是覆盖索引的,直接从索引中读取数据
  • using where:使用 where 进行条件过滤
  • using temporary :建立临时表来保存中间结果,查询完成之后把临时表删除
  • using join buffer:使用连接缓存
  • impossible where:where 语句的结果总是 false

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

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

相关文章

玩机搞机---卸载内置软件 无root权限卸载不需要的软件 安全卸载

目前的机型出厂都会自带一些内置软件。个别的还无法删除。各种弹窗广告 等等占用系统资源。操作卡顿。而很多卸载软件有需要root权限才可以运行。那么有没有方法可以无需root就可以卸载内置软件呢。答案是有的。而且方法很多。今天的帖子就列举一下常用的操作步骤 操作前了解的…

自己搭建网站【搭建网站】

现在搭建网站也不只是企业公司商家的专利,很多个人用户都想拥有属于自己的一个网站。那么怎么自己搭建网站呢?下面给大家简单说说。 一、申请域名 域名是访问网站的地址,这是必须要有的,可以在域名服务商网站上申请。申请域名需要…

科普-鸟哥私房菜中的“od -t oCc /etc/issue”的意思

文章摘录展示 看到这里是困惑的,毕竟看这里没有写oCc 的格式 既然文章不能找到答案,那么,我们看详细的说明吧(man od) 如图,想必我们应该很清楚了 ,o[size] 对应的参数oC ,就可以很…

2022.11.27Find a way HDU - 2612

Pass a year learning in Hangzhou, yifenfei arrival hometown Ningbo at finally. Leave Ningbo one year, yifenfei have many people to meet. Especially a good friend Merceki. Yifenfei’s home is at the countryside, but Merceki’s home is in the center of city.…

MySql索引详解-各种索引的定义与区别和应用

MySql索引详解-各种索引的定义与区别和应用一、索引基础:增删改查1.新增索引的几种方式2.删除索引的几种方式3.修改索引的几种方式4.查询索引的几种方式二、索引的分类1.主键索引2.唯一索引3.普通索引4.复合索引5.全文索引三、总结什么是索引?索引的作用…

【DL with Pytorch】第 6 章 : 用循环神经网络分析数据序列

🔎大家好,我是Sonhhxg_柒,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流🔎 📝个人主页-Sonhhxg_柒的博客_CSDN博客 📃 🎁欢迎各位→点赞…

PointRend 原理与代码解析

paper:PointRend: Image Segmentation as Rendering code1:https://github.com/facebookresearch/detectron2/tree/main/projects/PointRend code2:https://github.com/open-mmlab/mmsegmentation/tree/master/configs/point_rend 创新点…

[附源码]Python计算机毕业设计Django的花店售卖系统的设计与实现

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

[附源码]SSM计算机毕业设计学习资源共享与在线学习系统JAVA

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

全局路由拦截、局部路由拦截

引入: 看下面这个效果: 每次我们在点击一个功能时,它就会跳转到登录页面,意思就是让我们先登录,登录之后再进行功能操作;但是如果我们登录了,它就不会跳转,这是什么原理呢&#x…

vue3Blog首页基础布局样式规划

思考:我们已经安装了一个ant-design-vue的组件库,是否还可以安装其他的UI组件库混合使用? 答案是可以的,比如这个组件库没有要用到的组件,但另外一个组件有,我们完全可以再安装,单独将某一个使用到的组件引入即可,当项目打包的时候也不会说把所有的安装的都打包进去,只…

VS Code + Vue 开发环境搭建

1、下载并安装 Visual Studio Code 2019 2、Visual Studio Code 2019安装成功后,打开VS Code 工具点击左侧【扩展】菜单,在搜索栏中输入 Chinese 查找中文语言汉化包插件下载安装,然后重启VS Code 3、点击左侧【扩展】菜单,在搜…

【JS】数据结构之图结构

文章目录基本概念图的实现基本概念 什么是图? 图是一种数据结构,与树结构有些相似(在数学的概念上,树是图的一种)树结构是一对多的关系,而图结构是多对多的关系比如导航的最优路径:可以看成多个…

【Pandas数据处理100例】(一百):Pandas中使用filter()过滤器实现数据筛选

前言 大家好,我是阿光。 本专栏整理了《Pandas数据分析处理》,内包含了各种常见的数据处理,以及Pandas内置函数的使用方法,帮助我们快速便捷的处理表格数据。 正在更新中~ ✨ 🚨 我的项目环境: 平台:Windows10语言环境:python3.7编译器:PyCharmPandas版本:1.3.5N…

Oracle的学习心得和知识总结(八)|Oracle数据库PL/SQL语言GOTO语句技术详解

目录结构 注:提前言明 本文借鉴了以下博主、书籍或网站的内容,其列表如下: 1、参考书籍:《Oracle Database SQL Language Reference》 2、参考书籍:《PostgreSQL中文手册》 3、EDB Postgres Advanced Server User Guid…

Java常见漏洞——整数溢出漏洞、硬编码密码漏洞、不安全的随机数生成器

目录 前言: (一)整数溢出漏洞 0x01 整数溢出漏洞介绍 1.1 上界溢出 1.2 下界溢出 0x02 整数溢出漏洞修复 (二)硬编码密码漏洞 修复案例: (三)不安全的随机数生成器 前言&a…

1、Shell 概述

文章目录1、Shell 概述1.1 Linux 提供的 Shell 解析器有1.2 bash 和 sh 的关系1.3 Centos 默认的解析器是 bash尚硅谷2022版Linux扩展篇Shell教程-讲师:武晟然 壁立千仞 无欲则刚 1、Shell 概述 硬件–>操作系统核心(Linux内核)–>解释…

ubuntu2004 有线与另一个Ubuntu系统通信

在Ubuntu2004(从机)打开一个终端,输入如下配置有线网络ip,其中eth0 为有线网络的名称,up使能有线网络eth0: ifconfig eth0 192.169.10.2 up 并在.bashrc文件中输入 export ROS_MASTER_URIhttp://192.169.10.1:11311 …

Java多线程之线程池

Java高并发应用开发过程中会频繁的创建和销毁线程,为了节约成本和提升性能,往往会使用线程池来统一管理线程,使用线程池主要有以下几点优势 降低资源消耗:重复利用已创建的线程降低线程创建和销毁造成的消耗 提高响应速度&#xf…

ImageNet classification with deep convolutional neural networks

使用深度卷积神经网络进行ImageNet图像分类 目录 1.引言 2.网络结构 2.1 小细节 2.2 代码部分 3. 创新点 3.1 非线性激活函数ReLU(提速) 3.2 多GPU训练(提速) 3.3局部响应归一化(增强泛化能力,已不…