mysql之执行计划——explain中的extra详解
之前一直对explain中的extra和type两个类型混淆。其实两者完全不同,type列和覆盖索引毫无关系,它只是表示这个查询访问数据的方式,或者说是MySQL查询行的方式。
我们使用一个例子来讲解这个extra列。下面的例子来自:https://blog.csdn.net/jeffrey11223/article/details/79100761
首先我们创建一个表
CREATE TABLE test_extra ( xxx varchar(20) NOT NULL, yyy varchar(20) NOT NULL, zzz datetime NOT NULL, aaa varchar(10) NOT NULL, PRIMARY KEY (xxx,yyy,zzz)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
通过show index from test_extra;
语句来显示刚刚创建的表中的索引情况:
1. 第一种情况
这三个执行计划,extra字段的值是using index,意思是索引覆盖,查询的内容可以直接在索引中拿到。
2. 第二种情况
第一个查询语句的type使用ref,是因为匹配索引的最左前缀。extra为null,是因为什么?????????难道是因为直接使用索引就可以查询出来的原因吗???这里我没搞懂。。。
第二个查询语句的type使用All,是因为不符合最左前缀的理论,从而使用全盘扫描的方式查询数据,而extra的值是using where是因为,使用where来过滤条件。
3. 第三种情况
查询的内容在索引内,where条件符合索引最左前缀,extra是using where using index, 且type是ref,表面用了索引,索引覆盖了查询,using where表示发生了过滤
4. 第四种情况
查询的内容不再索引内,where条件为索引最左前缀,extra为null, type为ref,表明虽然用到了索引,但是没有索引覆盖,产生了回表。???回表问题需要搞一下。。。
mysql之执行计划——explain中的extra详解相关推荐
- MYSQL查看执行计划 Explain
1. 概述: 执行计划的查看是进行数据库的sql语句调优时依据的一个重要依据,mysql的执行计划查看相对oracle简便很多,功能也相对简单很多的SQL语句都不能直接查看. 本文档整理了mysql执 ...
- mysql查看执行计划_MySql中如何使用 explain 查询 SQL 的执行计划
explain命令是查看查询优化器如何决定执行查询的主要方法. 这个功能有局限性,并不总会说出真相,但它的输出是可以获取的最好信息,值得花时间去了解,因为可以学习到查询是如何执行的. 1.什么是MyS ...
- mysql 执行计划extra_mysql执行计划explain type和extra
mysql执行计划,搞定type和extra就能优化大部分sql了.type为主,extra为辅. type: system表只有一行,MyISAM引擎. const常量连接,表最多只有一行匹配,通用 ...
- MySQL优化篇:执行计划explain中key_len计算方式
概述 key_len表示索引使用的字节数,根据这个值可以判断索引的使用情况,特别是在使用联合索引的时候,判断该索引有多少部分被使用到非常重要. key_len的长度计算公式很重要(key_len越小, ...
- Mysql 数据库执行计划 EXPLAIN SELECT * FROM
文章目录 EXPLAIN SELECT * FROM 是干嘛用的 ? EXPLAIN SELECT * FROM 各个字段的含义 1. id: 2.select_type: 3. table: 4.t ...
- mysql更改执行计划_11g中 connect by 语句执行计划改变
从10.2.0.3升级到11.2.0.4的朋友,如果细心会发现,以下sql在11.2.0.4中执行效率变低(该sql主要是获取连接用户获取权限信息) select privilege#,level f ...
- MySQL—— MySQL的执行计划详解(Explain)
文章目录 1.MySQL执行计划的定义 2.MySQL整个查询的过程 3.如何启动执行计划 4.Explain分析示例 4.explain的 两个变种(我的版本是5.7) 5.explain中的列 5 ...
- mysql 执行计划 什么用_简述MySQL的执行计划的作用及使用方法
作为程序员,难免要和数据库打交道,一般情况下,我们不是DBA ,但是又要写很多SQL,因此SQL效率就成了很大的问题.关于SQL效率优化,除了要掌握一定优化技巧外, 还得有很多经验的积累,但是这里我们 ...
- mysql 分析执行计划的效率_MySQL执行计划分析
大家好,我是anyux.本文介绍MySQL执行计划分析. 作用 通过explain或desc命令将优化器选择后的执行计划截取出来,便于管理和判断语句的执行效率 获取执行计划 desc SQL语句 ex ...
最新文章
- 您对TOP Server的德语、中文和日语语言支持了解吗?(二)
- 如何使用jsp自定义标签 JspTag 使用入门
- 【Linux】 linux的进程系统一点补充
- Android 新闻客户端
- 拦截器Intercepter和过滤器Filter的比较
- vsflexgrid单元格换行后自动使用行高_Excel表格不会换行?10个超实用Excel小技巧,用了都说好!...
- c# asp.net mvc 开发的正方教务助手(二)
- python堆栈反向输出列表_python - IPython:将Python脚本的输出重定向到文件(如bash) - 堆栈内存溢出...
- python定时任务apschedule_APScheduler(python 定时任务框架)最简单使用教程
- 拒绝平庸——浅谈WEB登录页面设计
- java 调试js_Java与JS代码调试技巧
- 第四届“传智杯”全国大学生IT技能大赛(练习赛)【完结】
- Java数组排序(选择排序)
- 开源分销系统java_Java版Spring Boot Spring Cloud B2B2C电子商务-分销系统
- U盘文件夹变成exe应用程序
- i7 1165g7和i7 10510u哪个好
- 超大气自适应北漂鱼VP视频解析源码+带后台管理
- coap协议说明及函数使用
- Python 绘画excel分组柱状图(懒人学习)
- @component的注解
热门文章
- 一个菜鸟关于winrar密码无法秒破的…
- 【博客插件】Live2d看板娘放到自己的博客上(黑白猫猫+恶魔少女)
- Android集成FFmpeg
- 为什么我不建议你给领导回复“好的”?
- Day08 红帽Linux — 1创建、查看、编辑文本文件
- python堆排序算法代码_python堆排序算法实例代码
- 泛域名ssl证书,sectigo便宜通配符证书普及计划
- 【UML】UML图--交互图(时序图和协作图)
- c语言绝对值题目,初中数学绝对值的练习题(整理)
- WinAPI: OffsetRect - 移动矩形