解析explain执行计划
Explain执行计划解析
准备工作
- 关闭数据库缓存后再执行explain,否则缓存会影响执行效果的观察
关键字段
select_type
- SIMPLE:简单查询
- SUBQUERY:包含子查询
- DERIVED:列表中包含子查询
- UNION:包含结果合并
type
- ALL:全表扫描
- index:全索引扫描
- range:有范围的查询
- ref:以普通索引为基础的查询,可能会有回表操作
- eq_ref:以唯一索引为基础的查询
- const:查询常量
possible_keys:理论上使用的索引
key:实际使用的索引
key_len:索引使用的字节数
rows:总共扫描的行数
extra
- Using index:使用的覆盖索引,不需要回表查询
- Using where:先读数据,后过滤
- Using tempory:使用临时表
- Using filesort:对查询的结果按照非索引列排序
如何分析?
1.观察扫描总行数rows,如果这个数量比较大,则需要增加必要的范围查询,或者减少表的join的操作
2.观察是否存在回表操作,尽量消除回表
3.观察是否使用了索引覆盖,尽量使用索引覆盖
4.观察是否使用了联合索引,联合索引是否生效,调整SQL语句使联合索引生效
优化器的SQL优化原则
- 当优化器基于成本计算后,认为SQL需要做全表扫描才能满足查询目标的时候,它就会进行全表的扫描。
解析explain执行计划相关推荐
- Mysql高级调优篇——第二章:Explain执行计划深度剖析
1.Mysql Query Optimizer 这个名称在前言部分我在Mysql的整体架构中介绍过,称为查询优化器:这个查询优化器在绝大多数的公司,是不会做任何修改和扩展的,因为业务不需要,大牛请不起 ...
- 一文读懂 MySQL Explain 执行计划
一.前言 上周老周的一个好朋友让我出一篇教你读懂 SQL 执行计划,和我另一位读者反馈的面试题如何排查慢 SQL 的强相关,索性先出一篇一文读懂 MySQL Explain 执行计划.Explain ...
- 面试官:不会看 Explain执行计划,简历敢写 SQL 优化?
来自:程序员内点事 昨天中午在食堂,和部门的技术大牛们坐在一桌吃饭,作为一个卑微技术渣仔默默的吃着饭,听大佬们高谈阔论,研究各种高端技术,我TM也想说话可实在插不上嘴. 聊着聊着突然说到他上午面试了一 ...
- MySQL 优化必经之路, Explain执行计划 ?
索引类似大学图书馆建书目索引,可以提高数据检索的效率,降低数据库的IO成本.MySQL在300万条记录左右性能开始逐渐下降,虽然官方文档说500~800w记录,所以大数据量建立索引是非常有必要的.My ...
- MySQL高级 之 explain执行计划详解
使用explain关键字可以模拟优化器执行SQL查询语句,从而知道MySQL是如何处理你的SQL语句的,分析你的查询语句或是表结构的性能瓶颈. explain执行计划包含的信息 其中最重要的字段为:i ...
- MySQL 优化:Explain 执行计划详解
昨天中午在食堂,和部门的技术大牛们坐在一桌吃饭,作为一个卑微技术渣仔默默的吃着饭,听大佬们高谈阔论,研究各种高端技术,我TM也想说话可实在插不上嘴. 聊着聊着突然说到他上午面试了一个工作6年的程序员, ...
- Explain执行计划详解
作者:IT王小二 博客:https://itwxe.com 一条查询 SQL 语句为什么会执行很慢?执行的时候走了什么索引?多表查询的时候 SQL 大体执行流程是怎么样的?Explain 执行计划详解 ...
- Mysql explain 执行计划之type详解
EXPLAIN执行计划中type字段分为以下几种: ALL INDEX RANGE REF EQ_REF CONST,S ...
- 详述-Explain执行计划
昨天中午在食堂,和部门的技术大牛们坐在一桌吃饭,作为一个卑微技术渣仔默默的吃着饭,听大佬们高谈阔论,研究各种高端技术,我TM也想说话可实在插不上嘴. 聊着聊着突然说到他上午面试了一个工作6年的程序员, ...
最新文章
- 关于C语言中 字符串常量的问题
- 深入浅析zookeeper的一致性模型及其实现
- 67 Airflow配置MySQL数据库和LocalExecutor
- 清华大学计算机李雪,李雪 | 北京外国语大学国际商学院|International Business School,BFSU|本硕博,北外留学,来华留学Solbridge,EDP...
- 前端页面速度统计方法
- Java虚拟机学习(1):体系结构 内存模型
- 【题解】 [HEOI2016]排序题解 (二分答案,线段树)
- TypeError: ‘BasePermissionMetaclass‘ object is not iterable
- Vue.js入门系列教程(二)
- Webpack之插件html webpack plugin
- Python类的成员
- ios中蓝牙自动连接出现硬件提示框的问题
- 基于route-map的策略路由
- Python练手项目:计算机自动还原魔方(1)顶部十字
- 2.1 被隐藏了的过程
- (function(){})()后面的()含义
- 打印俄文字母表java,俄语字母与英语字母对照表
- 服务器存储hba卡直连,hba卡直连存储_fc hba卡之间如何连接_hba卡怎么连存储(5)
- php 的安装目录在哪,怎样查看PHP的安装目录和详细信息
- stem教育的什么意思
热门文章
- EWASM Gas Costs——gas 计算
- EtherCAT (学习笔记)
- 华为、字节跳动、蔚来、康师傅、法雷奥、AIG等公司高管变动
- 案例 | 巴别鸟为弘睿构建企业知识库
- 小程序体积优化(1)--优化大文本
- 北漂三年多 我选择离开,眼神更加坚定!
- Ajax的简历技能如何写,web前端开发工程师简历专业技能怎么写
- linux “<“ 会引发血案
- 第二阶段javaweb-day01-mqsql基础
- 宝元系统通讯软件recon_企业即时通讯系统拥有哪些二次开发能力?