博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MySQL的EXPLAIN的EXTRA
阅读量:6535 次
发布时间:2019-06-24

本文共 692 字,大约阅读时间需要 2 分钟。

  hot3.png

MySQL查询优化器执行查询的过程中对查询计划的重要补充信息。

(1)using where

使用了where子句来过滤元组

124316_baJh_1383356.png

(2)using temporary

用临时表保存中间结果,常用于GROUP BY 和 ORDER BY操作中

114022_Xssa_1383356.png

114742_HRT9_1383356.png

115120_WcqU_1383356.png

(3)using filesort

使用文件完成排序操作,这是可能是ordery by,group by语句的结果,这可能是一个CPU密集型的过程,可以通过选择合适的索引来改进性能,用索引来为查询结果排序。

114918_U4ik_1383356.png

(4)using index

不需要读取数据文件,从索引树(索引文件)中即可获得信息。如果同时出现using where,表明索引被用来执行索引键值的查找,没有using where,表明索引用来读取数据而非执行查找动作。

124713_zXyK_1383356.png

(5)using join buffer

使用了连接缓存:

Block Nested Loop,连接算法是块嵌套循环连接

114603_cEmf_1383356.png

115413_Amw4_1383356.png

Batched Key Access,连接算法是批量索引连接

(6)impossible where

where子句的值总是false,不能用来获取任何元组

(7)select tables optimized away

在没有GROUP BY子句的情况下,基于索引优化MIN/MAX操作,或者对于MyISAM存储引擎优化COUNT(*)操作,不必等到执行阶段再进行计算,查询执行计划生成的阶段即完成优化。

115235_7C3U_1383356.png

(8)distinct

优化distinct操作,在找到第一匹配的元组后即停止找同样值的动作

转载于:https://my.oschina.net/scipio/blog/293052

你可能感兴趣的文章
protocol buffers的编码原理
查看>>
行为型设计模式之命令模式(Command)
查看>>
减少死锁的几个常用方法
查看>>
HDFS 核心原理
查看>>
正确配置jstl的maven依赖,jar包冲突的问题终于解决啦
查看>>
利用KMP算法解决串的模式匹配问题(c++) -- 数据结构
查看>>
登录内网账号后,连接不上内网网址
查看>>
安装 MariaDB
查看>>
Python3学习笔记16-错误和异常
查看>>
图像识别——ubuntu16.04 movidius VPU NCSDK深度学习环境搭建
查看>>
.NET应用架构设计—适当使用活动记录模式代替领域模型模式
查看>>
dev_dbg()
查看>>
关于RVDS的PRESERVE8
查看>>
Tomcat在Mac平台安裝
查看>>
底层和高层-失去的平衡[我们要开发怎样的应用]
查看>>
60款高质量的网站模板免费下载(上篇)
查看>>
利用 JAVA 操作 EXCEL 文件
查看>>
【转】关于ListActivity的简单体验
查看>>
c# BackgroundWorker 控件
查看>>
Ruby入门(1)——数据类型
查看>>