内容简介: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

解压后倒入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/
推荐阅读
以上所述就是小编给大家介绍的《MySQL 8 查询优化新工具 Explain Analyze》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- java 分库关联查询工具类
- MySQL 8 查询优化新工具 Explain Analyze
- dba+开源工具:可视化分析MongoDB慢查询日志
- Socialscan:一款准确且快速的在线邮件地址及用户名查询工具
- SQLer:无需编程语言即可将 SQL 查询转换为 RESTful API 的工具
- MassDNS:一款功能强大的高性能DNS子域名查询枚举侦察工具
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Code Reading
Diomidis Spinellis / Addison-Wesley Professional / 2003-06-06 / USD 64.99
This book is a unique and essential reference that focuses upon the reading and comprehension of existing software code. While code reading is an important task faced by the vast majority of students,......一起来看看 《Code Reading》 这本书的介绍吧!