【问题标题】:Total run time of multiple queries in mysqlmysql中多个查询的总运行时间
【发布时间】:2012-11-23 12:48:57
【问题描述】:

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

非常感谢!

【问题讨论】:

  • 从最新的lol中减去最早的时间戳
  • 他们是被记录到表中还是让我们想知道

标签: mysql sql database query-optimization


【解决方案1】:

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

SET profiling=1;

这使您可以轻松查看每个查询所花费的时间:

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)

你可以把时间相加得到总时间:

SELECT SUM(Duration) from information_schema.profiling;

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

您可以采用另一种方法从命令行运行 SQL 查询并使用 Unix time 命令来计时执行。但是,这可能不会给您最精确的时间。此外,除非您将其与 MySQL 分析结合使用,否则它不会为您提供每个查询所用时间的细分。

【讨论】:

  • 非常感谢,aam1r。有没有办法只显示查询和持续时间。我的查询太长,很难查看。或者有什么方法可以查询这个“配置文件”表?如果我要再次运行基准测试,如何清理配置文件表?
  • @AlfredZhong:我还没有尝试过,但我建议尝试在information_schema.profiling 上运行查询——就像我们要得到总和一样。因此,SELECT Query_ID, Duration FROM information_schema.profiling 仅获取查询 ID 和持续时间。也许有更好的方法来做到这一点。如果有的话,我很想知道。
【解决方案2】:

您可以修改您的 .sql 以创建带有时间戳的开始和结束行,然后减去,而无需拿出 Excel 电子表格并将其相加。

【讨论】:

  • 非常感谢,@Drew。 mysql放时间戳的语法是什么?
【解决方案3】:

感谢所有建议。 我最终创建了另一个表,只是为了在 .sql 文件中记录每个查询的开始和结束时间。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-01
    • 1970-01-01
    • 2014-01-28
    相关资源
    最近更新 更多