Explain

MySql提供了Explain命令,它可以对你的sql语句进行分析,返回你的sql执行的详细信息,以供开发人员针对性进行优化

我们可以查看该sql是否使用索引、是否做全表扫描、性能瓶颈、执行的效率怎么样…等等

EXPLAIN介绍

EXPLAIN 指令提供了 MySQL 如何执行一条 SQL 语句的信息。通过使用 EXPLAIN,我们可以查看 SQL 语句的执行方式,进而排查 SQL 语句的瓶颈,然后进行优化。

Explain语法

Explain [ select语句 ]

示例

  • 例如分析一条select语句

我是用的Navicat软件运行的sql语句,explain 出来的信息有12列,下面我会列出来我常用到的:

select_type

查询过程中,每个select句子的类型

  • Simple 简单select,不使用union或子查询等
  • Primary 查当存在子查询时,最外层的select永远被标记为Primary主查询
  • Union union中第二个语句或后面的select语句
  • Dependent Union union中第二个语句或后面的select语句,独立于外部查询
  • Union Result Union结果,连接几个表查询后的结果
  • SubQuery 子查询中的第一个select
  • Dependent SubQuery 子查询中的第一个select,取决于外面的查询
  • Derived 子查询在from子句中,MySql会把结果放在临时表中
  • Uncacheable SubQuery 一个子查询的结果不能被缓存,必须重新评估外链接的第一行

type

常见的扫描方式
扫描方式由快到慢: System > Const > eq_ref > ref > range > index > All

  • System 系统表,少量数据(mysql服务启动时已加载在内存中,不需要进行磁盘IO)
  • Const 常量连接(最多之返回一行数据,速度快)
  • eq_ref 主表索引 或 非空唯一索引 等值扫描
  • ref 非主键非唯一索引(普通非唯一) 等值扫描
  • range 范围扫描(索引上范围查询,在索引上扫码特定范围的值)
  • index 索引树扫描(扫描索引上全部数据,仅比All扫描快一点)
  • All 全表扫描(如果id不建索引,则全表扫描)

rows

表示MySQL根据表统计信息及索引选用情况,估算找到结果集 需要扫描读取数据的行数。

  • 原则上,rows越少越好
  • 被扫描的行数,该数值越大,意味着需要扫描的行数,相应的耗时更长。
  • 需要注意的是,输出的rows只是一个估算值,不能完全对其百分百相信

推荐内容


  • MySql . Group_Concat 函数
    将一个分组中的指定元素(列或表达式)的值,拼接成一个字符串返回。

  • MySql . Concat_WS()函数
    通过分隔符,将2个及多个字段元素顺序拼接在一起,返回拼接后的字符串。

  • MySql . Field()函数
    返回一个指定的值 在给定的列表中的 索引(排序、数据优先级)。

  • MySql . CEIL()函数
  • 返回大于或等于制定数字的最小整数值。sql取余数…

  • MySql . ROW_NUMBER()函数
  • 返回的结果集中的每一行 生成一个序列号(为行分配序号)…

sql EXPLAIN 详解 type\rows相关推荐

  1. Mysql Explain 详解

    Mysql Explain 详解 一.语法 explain < table_name > 例如: explain select * from t3 where id=3952602; 二. ...

  2. MySQL之SQL优化详解(二)

    目录 MySQL之SQL优化详解(二) 1. SQL的执行顺序 1.1 手写顺序 1.2 机读顺序 2. 七种join 3. 索引 3.1 索引初探 3.2 索引分类 3.3 建与不建 4. 性能分析 ...

  3. 20200817-Mysql 底层数据结构及Explain详解

    Mysql 底层数据结构 常见面试题 索引 数据结构 二叉树 B-tree B+tree Hash 存储引擎 MyISAM存储引擎索引实现 非聚集索引 InnoDB存储引擎索引实现 辅助索引 联合索引 ...

  4. JAVA中Explain注解用法,mysql之explain详解(分析索引最佳使用)

    mysql之explain详解(分析索引最佳使用) mysql explain用于分析sql 语句的执行及数据库索引的使用.本文将致力于帮助大家充分理解explain所返回的各项参数,从而使大家快速掌 ...

  5. MySQL高级之explain详解

    MySQL高级之explain详解 文章目录 MySQL高级之explain详解 一.expalin命令详解 1.使用方式 2.结果显示 3.主要的字段信息 4.作用 二.id字段 三.select_ ...

  6. MySQL Explain详解,分析语句为何运行慢

    MySQL Explain详解 在日常工作中,我们会有时会开慢查询去记录一些执行时间比较久的SQL语句,找出这些SQL语句并不意味着完事了,些时我们常常用到explain这个命令来查看一个这些SQL语 ...

  7. php mysql explain_MySQL Explain详解

    MySQL Explain详解 在日常工作中,我们会有时会开慢查询去记录一些执行时间比较久的SQL语句,找出这些SQL语句并不意味着完事了,些时我们常常用到explain这个命令来查看一个这些SQL语 ...

  8. 数据库 explain详解

    数据库 explain详解 文章目录 数据库 explain详解 1.什么是explain 2.explain有什么用 3.explain个字段详解 3.1 id详解 3.2 select_type ...

  9. MySQL Explain详解,explain查询结果每列含义详细解释

    转自:https://www.cnblogs.com/xuanzhi201111/p/4175635.html MySQL Explain详解 在日常工作中,我们会有时会开慢查询去记录一些执行时间比较 ...

最新文章

  1. 构建一个移动应用程序要花多少钱?
  2. Python中双冒号的作用[::]
  3. centos mysql单向同步,虚拟机下实现Centos5.6下Mysql双向同步配置
  4. proxmoxve打造云桌面_[pve][vdi]用deskpool创建基于proxmoxVE的桌面云
  5. eagle8.6 linux 补丁,Ubuntu 12.04无法安装Eagle-6.x 解决方法
  6. NIPS2019 | 2019NIPS论文 | NeurIPS2019最新更新论文~持续更新| NIPS2019百度云下载
  7. 微机计算机继电保护原理,微机继电保护的发展历史
  8. CAD绘图的规范要点
  9. Abaqus设置初始地应力场
  10. 我的MIT代数拓扑笔记
  11. 密西根州立大学计算机qs分数,2020年密歇根州立大学QS世界排名
  12. C++程序设计-第2周结构体应用
  13. 1.一个模型,帮你找到真正热爱的工作
  14. win7 bcdedit
  15. 超市商品管理系统java
  16. 【ACWing】3626. 三元一次方程
  17. 黄褐斑激光-百花净斑方
  18. 利用威胁建模防范金融和互联网风险
  19. 服务器重装系统进入pe找不到硬盘,U盘装系统进入PE无法找到硬盘怎么办?
  20. 360搜索、UC浏览器等被3·15点名应用已下架;马斯克宣布通过NFT卖歌;美团App再发力社交,内测 “群聊”功能...

热门文章

  1. uni-app css之background属性说明
  2. 数据线如何申请办理检验报告,需要的资料有什么?
  3. mac 不显示 外接屏幕_如何设置Macbook外接显示器 Macbook外接显示器设置教程【详解】...
  4. Matlab神经网络工具箱中net.trainParam设置不成功问题
  5. 如何快速的下载openstack的所有源代码
  6. 前端练手项目4-数字时钟
  7. Cisco路由器配置DHCP服务及中继
  8. PowerPC MPC8270
  9. 在win10运行DOS环境与debug
  10. 智库专家称人工智能可提升网络空间适应能力