Как проверить, сколько времени занимает запрос MySQL?

когда я запускаю запрос, я не хочу, чтобы он печатался на консоли. Я просто хочу посмотреть время.

9166 rows in set (0.90 sec)

это все, что я хочу видеть, вместо того, чтобы печатать все.

3 ответов


попробуйте этот простой пример

mysql> set profiling=1;
mysql> select count(*) from comment;
mysql> select count(*) from message;
mysql> show profiles;

+----------+------------+------------------------------+
| Query_ID | Duration   | Query                        |
+----------+------------+------------------------------+
|        1 | 0.00012700 | select count(*) from comment |
|        2 | 0.00014200 | select count(*) from message |
+----------+------------+------------------------------+
2 rows in set (0.00 sec)

вы можете написать свой запрос в подзапрос с COUNT чтобы сделать трюк как:

SELECT COUNT(1)
FROM ( SELECT * FROM your_table WHERE ...) a

это может немного замедлить ваш запрос, как это делает COUNT также, но я думаю, что это незначительно.

для измерения производительности запроса вы можете включить PROFILES в MySQL как:

SET profiling = 1;

подробнее о PROFILES посмотреть здесь.


$starttime = microtime(true);

//Do your query and stuff here

$endtime = microtime(true);
$duration = $endtime - $starttime; //calculates total time taken