IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> EXPLAIN 执行语句分析 -> 正文阅读

[大数据]EXPLAIN 执行语句分析


前置:建表语句

CREATE TABLE `test_user` (
  `id` int NOT NULL AUTO_INCREMENT COMMENT '主键id',
  `user_id` varchar(36) NOT NULL COMMENT '用户id',
  `user_name` varchar(30) NOT NULL COMMENT '用户名称',
  `phone` varchar(20) NOT NULL COMMENT '手机号码',
  `lan_id` int NOT NULL COMMENT '本地网',
  `region_id` int NOT NULL COMMENT '区域',
  `create_time` datetime NOT NULL COMMENT '创建时间',
  PRIMARY KEY (`id`),
  UNIQUE KEY `un_idx_phone` (`phone`) USING BTREE,
  KEY `idx_user_id` (`user_id`),
  KEY `idx_uid_phone` (`user_id`,`phone`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=1010001 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

1.explain 用法

explain + sql语句

2.描述符含义

描述符含义
id执行顺序。(id 越大越先执行、id 相同由上至下)
select_type查询的类型
table显示这一行的数据是关于哪张表的
partitions使用的哪个分区,需要结合表分区才可以看到
typetype显示的是访问类型,是较为重要的一个指标
possible_keys查询涉及到的字段上若存在索引,则该索引将被列出,但不一定被查询实际使用
key实际使用的索引。如果为NULL,则没有使用索引
key_len表示索引中使用的字节数,可通过该列计算查询中使用的索引的长度;key_len应尽量短,越短效率越高
ref哪些列或常量被用于查找索引列上的值
rows显示MySQL认为它执行查询时必须检查的行数,越小越好
filtered表示返回结果的行数占需读取行数的百分比,越大越好
Extra一些额外信息

2.1 id 介绍

2.1.1 id 相同

在这里插入图片描述

id 相同,是同一组,执行顺序由上至下

2.1.2 id 不同

在这里插入图片描述

id 不同,不是同一组,执行顺序按 id 由大到小

注意:这条语句 tu.id = 不能改成 tu.id in,我使用 mysql 是8.* 版本,in (sql语句) 会被优化城 join 语句,所有看到的是这样的
在这里插入图片描述

2.2 select_type 介绍

select_type 类型解释示例
SIMPLE简单SELECT,不使用UNION或子查询等在这里插入图片描述
PRIMARY子查询中最外层查询,查询中若包含任何复杂的子部分,最外层的select被标记为PRIMARY在这里插入图片描述
UNIONUNION中的第二个或后面的SELECT语句在这里插入图片描述
DEPENDENT UNIONUNION中的第二个或后面的SELECT语句,取决于外面的查询
UNION RESULTUNION的结果,union语句中第二个select开始后面所有select
SUBQUERY子查询中的第一个SELECT,结果不依赖于外部查询
DEPENDENT SUBQUERY子查询中的第一个SELECT,依赖于外部查询
DERIVED派生表的SELECT, FROM子句的子查询
UNCACHEABLE SUBQUERY一个子查询的结果不能被缓存,必须重新评估外链接的第一行

2.3 table 介绍

显示这一步所访问数据库中表名称(显示这一行的数据是关于哪张表的),有时不是真实的表名字,可能是简称

2.4 partitions 介绍

暂无

2.5 type 介绍

对表访问方式,表示MySQL在表中找到所需行的方式,又称“访问类型”。

类型说明性能从低到高示例
ALLFull Table Scan, MySQL将遍历全表以找到匹配的行1在这里插入图片描述
indexFull Index Scan,index与ALL区别为index类型只遍历索引树2在这里插入图片描述
range只检索给定范围的行,使用一个索引来完成3在这里插入图片描述
ref使用非唯一性索引检索,返回匹配某个单独值的所有行4在这里插入图片描述
eq_ref唯一性索引检索,对于每个索引键,表中只有一条记录与之匹配。常见于主键或唯一索引扫描5
const表示通过索引一次就找到了,const用于比较primary key或者unique索引,如将主键置于where列表中,MySQL就能将该查询转换为一个常量6在这里插入图片描述
system表只有一行记录(等于系统表),这是const类型的特列,平时不会出现,这个也可以忽略不计7
NULL8

2.6 possible_keys 介绍

查询涉及到的字段上若存在索引,则该索引将被列出,但不一定被查询实际使用

2.7 key 介绍

实际使用的索引。如果为NULL,则没有使用索引

2.8 key_len 介绍

表示索引中索引键使用的字节数,可通过该列计算查询中使用的索引的长度

key_len应尽量短,越短效率越高

2.9 ref 介绍

哪些列或常量被用于查找索引列上的值。如果是列,则显示字段名;如果是常数,则显示const

在这里插入图片描述

常量被用于查找索引树上的值,那么 ref = const

在这里插入图片描述

列被用于查找索引树上的值,那么 ref = 列

2.10 rows 介绍

显示MySQL认为它执行查询时必须检查的行数,越小越好

注意,针对limit语句,这个是不准确的

在这里插入图片描述

这里真实 rows = 100

2.11 filtered 介绍

表示返回结果的行数占需读取行数的百分比,越大也就意味着有效查询越高

2.12 Extra 介绍

一些额外信息

类型说明示例
Using filesort无法利用索引完成的排序操作称为“文件排序在这里插入图片描述
Using temporary使用了临时表保存中间结果,MySQL在对查询结果排序时使用临时表。常见于分组查询group by在这里插入图片描述
Using index索引覆盖在这里插入图片描述
Using where触发条件 = 需要回表 + where过滤在这里插入图片描述
Using where & Using index触发条件=不能回表 + 使用了二级索引 + where过滤在这里插入图片描述>、<、like 等条件是 where 过滤的
Using index condition索引下推 ,触发条件 = 需要回表 + 使用了二级索引 + where条件可以放在innodb层过滤**在这里插入图片描述
Using join buffer使用了连接缓存
  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-04-01 23:28:20  更:2022-04-01 23:29:24 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 5:40:09-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码