Php 如何测试mySQL查询的速度?

Php 如何测试mySQL查询的速度?,php,mysql,Php,Mysql,我有一个选择和查询如下 $sql = "SELECT * FROM notifications WHERE to_id='".$userid."' AND (alert_read != '1' OR user_read != '1') ORDER BY alert_time DESC"; $result = mysql_query($sql); 如何测试查询运行所需的时间?可能需要查看以下讨论: 如

我有一个选择和查询如下

    $sql = "SELECT * 
        FROM notifications 
        WHERE to_id='".$userid."' 
            AND (alert_read != '1' OR user_read != '1') 
        ORDER BY alert_time DESC";
    $result = mysql_query($sql);

如何测试查询运行所需的时间?

可能需要查看以下讨论:


如果从mysql控制台运行查询,则在运行查询后会立即显示速度。

在mysql\u查询之前和之后使用php函数microtime(),然后比较结果

$time1 = (int) microtime();
$result = mysql_query($sql);
$time2 = (int) microtime();

echo ($time2 - $time1);

(如果您使用microtime(true)-它返回浮点数,您将得到更少的准确数)

有一个MySQL系统变量,它是在
信息\u模式
数据库中为您的特定会话创建的。请参阅下面的代码:

mysql> set profiling=1;
只需执行查询。。。查询的执行会话将存储在
信息\u架构中

mysql> select count(*) from client where broker_id=2;
查询完成后,只需执行以下行:

mysql> show profiles;
它显示查询的整个执行时间。只需执行并告诉下面的查询ID即可获得查询的执行/速度


mysql>显示查询1的配置文件;

我已经看到了这一点,但它并没有真正起到作用。我对速度测试还不熟悉,但我不太了解它。我试着使用microtime,但它采用的是PHP的速度,而不是查询。你在另一篇文章的评论中写道,microtime衡量的是PHP的速度。我认为对于运行时间小于1毫秒的简单查询来说,这可能是无用的,但我也不认为有理由这样度量快速查询。我认为对于小于1毫秒的查询(有问题的查询比这慢),它足够准确。只有在远程机器上运行db server时,才不会那么准确。是的,我考虑了一个更复杂的答案,但老实说,如果您只对基本调优感兴趣,只需使用mysql客户端中已经内置的功能:)