我在一个.sql文件中有一些基准测试查询。如果我在mysql中使用source来执行它们,那么mysql将在每次查询后显示运行时。并有页面和页面查询输出。有没有办法获得所有查询的总运行时间?
非常感谢!
发布于 2012-11-23 12:48:58
谢谢你所有的建议。最后,我创建了另一个表,以便在.sql文件中记录每个查询的开始和结束时间。
我编辑了.sql文件,在每个原始查询后面添加一条insert语句来记录时间。最后,我可以查询这个“时间”表来分析.sql文件的执行情况。
发布于 2012-11-22 09:39:35
您可以通过将以下行添加到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分析结合使用。
发布于 2012-11-22 09:43:57
您可以修改.sql以创建带有时间戳的开始行和结束行,然后进行减法运算,而不必调出excel电子表格并将其相加。
https://stackoverflow.com/questions/13504666
复制相似问题