首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mysql中多个查询的总运行时间

mysql中多个查询的总运行时间
EN

Stack Overflow用户
提问于 2012-11-22 09:28:31
回答 3查看 2.6K关注 0票数 0

我在一个.sql文件中有一些基准测试查询。如果我在mysql中使用source来执行它们,那么mysql将在每次查询后显示运行时。并有页面和页面查询输出。有没有办法获得所有查询的总运行时间?

非常感谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-11-23 12:48:58

谢谢你所有的建议。最后,我创建了另一个表,以便在.sql文件中记录每个查询的开始和结束时间。

我编辑了.sql文件,在每个原始查询后面添加一条insert语句来记录时间。最后,我可以查询这个“时间”表来分析.sql文件的执行情况。

票数 0
EN

Stack Overflow用户

发布于 2012-11-22 09:39:35

您可以通过将以下行添加到my.cnf中来使用MySQL内置的性能分析支持

代码语言:javascript
复制
SET profiling=1;

这使您可以轻松地查看每次查询所用的时间:

代码语言:javascript
复制
mysql> SHOW PROFILES;
+----------+-------------+-------------------------------------------------------------------+
| Query_ID | Duration    | Query                                                             |
+----------+-------------+-------------------------------------------------------------------+
|        1 |  0.33174700 | SELECT COUNT(*) FROM myTable WHERE extra LIKE '%zkddj%'           | 
|        2 |  0.00036600 | SELECT COUNT(id) FROM myTable                                     | 
|        3 |  0.00087700 | CREATE TEMPORARY TABLE foo LIKE myTable                           | 
|        4 | 33.52952000 | INSERT INTO foo SELECT * FROM myTable                             | 
|        5 |  0.06431200 | DROP TEMPORARY TABLE foo                                          | 
+----------+-------------+-------------------------------------------------------------------+
5 rows in set (0.00 sec)

您可以将时间相加,以获得总时间:

代码语言:javascript
复制
SELECT SUM(Duration) from information_schema.profiling;

您可以在MySQL的分析here上找到更多详细信息。

另一种方法是运行它,从命令行执行SQL查询,并使用Unix time命令对执行进行计时。然而,这可能不会给你最准确的时间。此外,它不会给出每个查询所用时间的细目,除非您将其与MySQL分析结合使用。

票数 2
EN

Stack Overflow用户

发布于 2012-11-22 09:43:57

您可以修改.sql以创建带有时间戳的开始行和结束行,然后进行减法运算,而不必调出excel电子表格并将其相加。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13504666

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档