Как проверить, сколько времени занимает запрос 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