MySQL explain
explain
EXPLAIN SELECT ……
变体:
1. EXPLAIN EXTENDED SELECT ……
将执行计划“反编译”成SELECT语句,运行SHOW WARNINGS 可得到被MySQL优化器优化后的查询语句
2. EXPLAIN PARTITIONS SELECT ……
用于分区表的EXPLAIN
对于非select语句不能直接查看,需要改写为select语句后查看
- ID
id包含一组数字,表示查询中执行select子句或操作表的顺序
id相同,可以认为是一组,执行顺序由上至下,如果是子查询,id的序号会递增,id值越大优先级越高,越先被执行
select_type
a.SIMPLE:查询中不包含子查询或者UNION
b.查询中若包含任何复杂的子部分,最外层查询则被标记为:PRIMARY
c.在SELECT或WHERE列表中包含了子查询,该子查询被标记为:SUBQUERY
d.在FROM列表中包含的子查询被标记为:DERIVED(衍生)
e.若第二个SELECT出现在UNION之后,则被标记为UNION;若UNION包含在 FROM子句的子查询中,外层SELECT将被标记为:DERIVED
f.从UNION表获取结果的SELECT被标记为:UNION RESULT
- type
表示MySQL在表中找到所需行的方式,又称“访问类型”,由左至右,由最差到最好, 常见类型如下:
range访问类型的不同形式的索引访问性能差异
ref:非唯一性索引扫描,返回匹配某个单独值的所有行。常见于使用非唯一索引即唯一索引的非唯一前缀进行的查找
eq_ref:唯一性索引扫描,对于每个索引键,表中只有一条记录与之匹配。常见于主键或唯一索引扫描
const、system:当MySQL对查询某部分进行优化,并转换为一个常量时,使用这些类型访问。如将主键置于where列表中,MySQL就能将该查询转换为一个常量
system是const类型的特例,当查询的表只有一行的情况下, 使用system
NULL:MySQL在优化过程中分解语句,执行时甚至不用访问表或索引
possible_keys
key
key_len
ref
本例中,由key_len可知t1表的idx_col1_col2被充分使用,col1匹配t2表的col1,col2匹配了一个常量,即 ’ac’
- rows
- Extra
TIPS:覆盖索引(Covering Index)
Using filesort
MySQL执行计划的局限
转载于:https://www.cnblogs.com/vadim/p/7374243.html
MySQL explain相关推荐
- 简单了解SQL性能优化工具MySql Explain
点击上方蓝色字体,选择"设为星标" 优质文章,及时送达 写在前面 MySql Explain是对SQL进行性能优化不可或缺的工具,通过他我们可以对SQL进行一定的分析和性能优化,降 ...
- Mysql Explain 详解
Mysql Explain 详解 一.语法 explain < table_name > 例如: explain select * from t3 where id=3952602; 二. ...
- [转]MySQL Explain详解
在日常工作中,我们会有时会开慢查询去记录一些执行时间比较久的SQL语句,找出这些SQL语句并不意味着完事了,些时我们常常用到explain这个命令来查看一个这些SQL语句的执行计划,查看该SQL语句有 ...
- mysql extended_explain之三:MYSQL EXPLAIN语句的extended 选项学习体会,分析诊断工具之二...
MySQL 的explain命令有一个extended选项,我想可以很多人都没有注意,因为它对命令的输出结果没有任何改变,只是增加了一个warning.这个 warning中显示了MySQL对SQL的 ...
- MySQL - Explain深度剖析
文章目录 生猛干货 官方文档 Explain介绍 测试数据 explain 使用 explain重要列说明 id select_type simple primary subquery derived ...
- MYSQL:explain分析
mysql explain分析 通过explain可以知道mysql是如何处理语句,分析出查询或是表结构的性能瓶颈.通过expalin可以得到: 1. 表的读取顺序 2.表的读取操作的操作类型 3.哪 ...
- (mysql) EXPLAIN语法
MySQL Explain功能中展示各种信息的解释. 1.ID:MySQL Query Optimizer选定的执行计划中查询的序列号. 2.Select_type:所使用的查询类型,主要有以下这几种 ...
- 对mysql explain讲的比较清楚的
对mysql explain讲的比较清楚的 explain结果的每行记录显示了每个表的相关信息,每行记录都包含以下几个字段: id 本次 select 的标识符.在查询中每个 select都有一个顺序 ...
- mysql explain insert_MySQL之EXPLAIN 执行计划详解
explain 可以分析 select语句的执行,即 MySQL 的"执行计划. 一.type 列 MySQL 在表里找到所需行的方式.包括(由左至右,由最差到最好):| All | ind ...
- MySQL Explain详解,分析语句为何运行慢
MySQL Explain详解 在日常工作中,我们会有时会开慢查询去记录一些执行时间比较久的SQL语句,找出这些SQL语句并不意味着完事了,些时我们常常用到explain这个命令来查看一个这些SQL语 ...
最新文章
- Faiss教程:索引(2)
- linux 用户进程结束后 malloc申请的内存会自动释放吗,进程退出后malloc的内存是否会被释放?
- 在Visual Studio 2010 中使用菱形向导对窗口进行布局
- hutool的定时任务不支持依赖注入怎么办_设计一个任务调度算法,时间轮算法,比优先队列更高效...
- 快速上手!mysql数据恢复的方法
- “父亲项目”走进澳洲校园 助父子建立联系
- 【转】wcf configuration
- 第六章 线性回归 学习笔记中
- 高性能 TCP/UDP/HTTP 通信框架 HP-Socket v4.1.1
- html外链视频,WordPress文章内容中插入外链视频的通用iframe方法
- 解决linux 连接网络但不能上网问题
- JS高级---函数中的this的指向,函数的不同调用方式
- java 读取文件inputstream_使用Inputstream读取文件
- maps-api-v3_利用Google Maps API发挥创意
- Python数据分析案例17——电影人气预测(特征工程构建)
- SQLSERVER 2000 以及SQL Server 2005的版本号
- QT -关于QLineEdit的函数text获取的值是空的
- 用条码标签打印软件批量打印物料标签
- 时间戳和时间的相互转换,以及中国本地时间转换成国外时间
- WordPress批量添加、修改、删除自定义字段的sql命令
热门文章
- 定制AjaxControlToolkit(1):使一个CalendarExtender对应N个TextBox
- printf输出颜色和ANSI控制码(高亮,下划线,闪烁,光标位置,清屏等)
- JavaSE(二十三)——JVM
- matlab光学远轴光的折射,光学课后习题
- a表两个字段都与b表一个字段关联_数据库表的主键实例分析
- 神经网络 | 基于脉冲耦合神经网络(PCNN)的图像特征提取(Matlab源代码)
- 北斗导航 | 卫星信号的跟踪与解调
- Qt学习(二):菜单栏、工具栏和对话框
- 激发新型城市创新动能 第四范式分享智慧城市探索之路
- rust(64)-指针类型(1)