MySQL 8 查询优化新工具 Explain Analyze

栏目: IT技术 · 发布时间: 4年前

内容简介:Explain是我们常用的查询分析工具,可以对查询语句的执行方式进行评估,给出很多有用的线索。但他仅仅是Explain Analyze是

1. Explain Analyze 介绍

Explain是我们常用的查询分析工具,可以对查询语句的执行方式进行评估,给出很多有用的线索。

但他仅仅是 评估 ,不是实际的执行情况,比如结果中的 rows ,可能和实际结果相差甚大。

Explain Analyze是 MySQL 8 中提供的新工具,牛X之处在于可以给出 实际执行情况

Explain Analyze是一个查询性能分析工具,可以详细的显示出 查询语句执行过程中,都在哪儿花费了多少时间。

Explain Analyze 会做出查询计划,并且会实际执行,以测量出查询计划中各个关键点的实际指标,例如耗时、条数,最后详细的打印出来。

2. 实践效果

例如有如下一条查询语句:

SELECT first_name, last_name, SUM(amount) AS total
FROM staff INNER JOIN payment
  ON staff.staff_id = payment.staff_id
     AND
     payment_date LIKE '2005-08%'
GROUP BY first_name, last_name;

现在对它执行 Explain Analyze ,只需要添加在 SELECT 前边就行了:

EXPLAIN ANALYZE
SELECT first_name, last_name, SUM(amount) AS total
FROM staff INNER JOIN payment
  ON staff.staff_id = payment.staff_id
     AND
     payment_date LIKE '2005-08%'
GROUP BY first_name, last_name;

执行结果:

结果中包含了各个执行步骤的详细情况,内容比较多,图片中不方便看,下面咱就拿出其中一条看一下:

Filter: (payment.payment_date like '2005-08%')  
(cost=117.43 rows=894) 
(actual time=0.454..194.045 rows=2844 loops=2)

Filter 表示这是执行过滤的一个步骤。

(payment.payment_date like '2005-08%')  

这部分是过滤条件。

(cost=117.43 rows=894)

这部分是估算的结果,预计需要花费的时间,和返回的记录条数。

这就是在真正执行之前,查询优化器所做的估算。

(actual time=0.454..194.045 rows=2844 loops=2)

这部分就是实际执行的结果数据了。

time 的结果中分为2个部分,前面的 0.454 是返回第一条记录的耗时,后面的 194.045 是返回所有记录的耗时。

rows 就是实际返回的准确记录条数。

loops 是当前过滤迭代器所执行的循环的数量。

3. 实际环境

如果你想实际试试,可以使用 MySQL 提供的测试数据库 sakila

下载地址:

https://dev.mysql.com/doc/index-other.html

![image-20200702114403512](/Users/a/Library/Application Support/typora-user-images/image-20200702114403512.png)

解压后倒入MySQL:

mysql> SOURCE /xxx/sakila-schema.sql;
mysql> SOURCE /xxx/sakila-data.sql;

4. 小结

感谢阅读,希望对你有所帮助 :pray:

参考资料:

https://mysqlserverteam.com/mysql-explain-analyze/

https://www.percona.com/blog/2019/10/28/using-explain-analyze-in-mysql-8/

推荐阅读

轻松理解 Kubernetes 的核心概念

开发者必须要了解的架构技术趋势:Service Mesh

Elasticsearch 开箱指南

阿里开源的分布式事务框架 Seata

ZooKeeper 并不适合做注册中心

MySQL 8 查询优化新工具 Explain Analyze

以上所述就是小编给大家介绍的《MySQL 8 查询优化新工具 Explain Analyze》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

设计之下

设计之下

搜狐新闻客户端UED团队 / 电子工业出版社 / 2014-1-1 / CNY 69.00

形而上者谓之道,形而下者谓之器。匠者,器也。处身平凡的匠人不断追求向上的设计之道。本书没有华丽的辞藻和长篇大论的理论,作者是搜狐一线的设计团队,写作过程中他们尽力还原真实的工作场景,并总结出了一些实用的经验和方法。 《设计之下》共三部分,全面讲解了用户体验设计的流程和方法。第一部分为“交互设计”,阐述了从项目启动、解析需求到原型设计的过程,并且总结了交互设计的要点:大局观、操作流程简捷、形式......一起来看看 《设计之下》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具