Php 计算从数据库检索数据所需的时间

Php 计算从数据库检索数据所需的时间,php,mysql,sql,Php,Mysql,Sql,我将测量脚本从数据库检索数据所需的时间,因此我编写了这段代码 $Time = time(); $Content = mysql_query("SELECT * FROM table"); while($Row = mysql_fetch_array($Content)) { $UserNick = $Row['UserNickname']; echo "<div id=\"nickname_users\">".$UserNick."</div>"; $Time2 =

我将测量脚本从数据库检索数据所需的时间,因此我编写了这段代码

$Time = time();
$Content = mysql_query("SELECT * FROM table");

while($Row = mysql_fetch_array($Content)) {

$UserNick = $Row['UserNickname'];

echo "<div id=\"nickname_users\">".$UserNick."</div>";
$Time2 = time();
$Total = $Time-$Time2;
echo "he employed ".$Total." to retrieve data from the database";
}
$Time=Time();
$Content=mysql_查询(“从表中选择*);
while($Row=mysql\u fetch\u数组($Content)){
$UserNick=$Row['user昵称'];
回显“$UserNick.”;
$Time2=时间();
$Total=$Time-$Time2;
echo“他雇佣了”.$Total.“从数据库检索数据”;
}

但是他返回了0,所以我读到“他使用0从数据库中检索数据。我如何修复?

PHP函数的分辨率为秒,因此如果您的查询在不到一秒的时间内返回,您可能会得到零作为答案

您应该改为使用分辨率为微秒(百万分之一秒)的
microtime()

返回整数,即返回自Unix纪元以来的秒数。根据脚本的复杂性,执行代码所需秒数的可能性很小。不过这是可能的

在这种情况下,更好的解决方案是使用返回当前Unix时间戳(以微秒为单位)

$Time = microtime(true);
$Content = mysql_query("SELECT * FROM table");

while($Row = mysql_fetch_array($Content)) {

$UserNick = $Row['UserNickname'];

echo "<div id=\"nickname_users\">".$UserNick."</div>";
$Time2 = microtime(true);
$Total = $Time2-$Time;
echo "he employed ".$Total." microseconds to retrieve data from the database";
}
$Time=microtime(真);
$Content=mysql_查询(“从表中选择*);
while($Row=mysql\u fetch\u数组($Content)){
$UserNick=$Row['user昵称'];
回显“$UserNick.”;
$Time2=微时间(真);
$Total=$Time2-$Time;
echo“他使用了”.$Total.“微秒从数据库检索数据”;
}
另外,我相信您希望
$Time2-$Time
而不是相反

$start = microtime(true);
$query = mysql_query('SELECT * FROM `table`');

while ($row = mysql_fetch_array($query)) {
    $userNick = $row['UserNickName'];

    $total_employed_microseconds = microtime(true) - $start;
    $total_employed_seconds = $total_employed_microseconds * 1000000.0;

    echo "{$userNick} employed {$total_employed_microseconds} microseconds
          and {$total_employed_seconds}";
}

$end = microtime(true);
$total_microseconds = $end - $start;
$total_seconds = $total_microseconds * 1000000.0;

echo "It took {$total_microseconds} microseconds and {$total_seconds} seconds.";

使用将使您的结果更加准确。您希望确保从结束处减去开始,因为结束总是一个较大的数字。(不要使用我的变量名)

time()
具有1秒的精度。请使用
microtime()重试
。谢谢!它可以工作,但因为结果是负数?-0.0006329999999999,我如何确保它不显示数字?反转您的数学。
$Time2-$Time
而不是
$Time-$Time2