MySQL 8 查询优化新工具 Explain Analyze
2021/11/27 19:10:48
本文主要是介绍MySQL 8 查询优化新工具 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
是当前过滤迭代器所执行的循环的数量。
这篇关于MySQL 8 查询优化新工具 Explain Analyze的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-16MySQL资料:新手入门教程
- 2024-11-16MySQL资料:新手入门教程
- 2024-11-15MySQL教程:初学者必备的MySQL数据库入门指南
- 2024-11-15MySQL教程:初学者必看的MySQL入门指南
- 2024-11-04部署MySQL集群项目实战:新手入门教程
- 2024-11-04如何部署MySQL集群资料:新手入门指南
- 2024-11-02MySQL集群项目实战:新手入门指南
- 2024-11-02初学者指南:部署MySQL集群资料
- 2024-11-01部署MySQL集群教程:新手入门指南
- 2024-11-01如何部署MySQL集群:新手入门教程