欢迎访问 生活随笔!

凯发k8官方网

当前位置: 凯发k8官方网 > 运维知识 > 数据库 >内容正文

数据库

根据条件查询某条记录的条数-凯发k8官方网

发布时间:2024/10/14 数据库 28 豆豆
凯发k8官方网 收集整理的这篇文章主要介绍了 根据条件查询某条记录的条数_「性能与架构」mysql 8 查询优化新工具 explain analyze... 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

来源:性能与架构公众号

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

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

explain analyzemysql 8 中提供的新工具,牛x之处在于可以给出实际执行情况

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

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

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

select first_name, last_name, sum(amount) as totalfrom 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 analyzeselect first_name, last_name, sum(amount) as totalfrom 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 提供的测试数据库 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;

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

参考资料:

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

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

与50位技术专家面对面20年技术见证,附赠技术全景图

总结

以上是凯发k8官方网为你收集整理的根据条件查询某条记录的条数_「性能与架构」mysql 8 查询优化新工具 explain analyze...的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得凯发k8官方网网站内容还不错,欢迎将凯发k8官方网推荐给好友。

网站地图