Liz*_*ard 2 php mysql execution-time
我试图计算使用PHP脚本运行查询所需的时间:
例如:
$sql = "SELECT COUNT(*) FROM `order_items` LEFT JOIN `orders` ON `oi_o_id` = `o_id` WHERE `o_status` = 'completed' AND `oi_p_id` = '10' LIMIT 1";
$sqlStart = getMicroTime();
$result = mysql_query($sql);
$sqlEnd = getMicroTime();
$sqlTime = $sqlEnd - $sqlStart;
echo $sqlTime;
function getMicroTime() {
list($msec, $sec) = explode(' ', microtime());
return floor($sec / 1000) + $msec;
}
Run Code Online (Sandbox Code Playgroud)
这似乎在大多数时间都有效,但偶尔我会得到一个负值,例如-0.98840499995276.这怎么可能?有没有更好的方法来获得查询执行时间?
谢谢
您的微量时间功能不是必需的,只需这样做
$start = microtime(TRUE);
... do query
$end = microtime(TRUE);
Run Code Online (Sandbox Code Playgroud)
传递TRUE值有microtime()返回时间戳作为一个实际的浮点数,而不是那个愚蠢的字符串格式,一些[真正令人讨厌但准确描述所述人的智能]认为这将是一种有用的返回数据的方式.
小智 5
有时 PHP 使用“E 表示法”来表示浮点数:如果你想避免这种情况,你可以这样使用 round 函数:
$start_time = (float) round(microtime(true) * 10000,0);
{your code here}
$finish_time = (float) round(microtime(true) * 10000,0);
$time = ($finish_time - $start_time) / 10000;
Run Code Online (Sandbox Code Playgroud)