8

当我运行查询时,我不希望它打印到控制台。我只是想看看时间。

9166 rows in set (0.90 sec)

这就是我想看到的,而不是打印所有内容。

4

3 回答 3

12

试试这个简单的例子

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)
于 2012-07-31T08:22:22.163 回答
3

您可以在子查询中编写查询,COUNT以执行以下操作:

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

它可能会稍微减慢您的查询速度,因为它COUNT也在这样做,但我认为它可以忽略不计。

为了测量查询的性能,您可以PROFILES在 MySQL 中打开如下:

SET profiling = 1;

有关更多详细信息,PROFILES请参见此处

于 2012-07-31T08:05:43.940 回答
0
$starttime = microtime(true);

//Do your query and stuff here

$endtime = microtime(true);
$duration = $endtime - $starttime; //calculates total time taken
于 2012-07-31T08:24:53.773 回答