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客户端中已经内置的功能:)