:返回的时间精确到微秒,适合短时间测量。
易用性:不依赖额外扩展,PHP 原生支持。
兼容性好:在大多数 Unix-like 系统和 PHP 环境中均可使用。
gettimeofday 函数的语法如下:
array gettimeofday([bool $return_float = false])
如果 $return_float 设置为 true,返回当前时间的浮点数(秒.微秒)。
如果为默认值 false,则返回包含秒数和微秒数的数组。
举例:
$time = gettimeofday(true);
echo $time; // 例如输出:1685021654.123456
以下是一个典型的使用 MySQLi 执行 SQL 查询并计算时间的示例:
<?php
// 连接数据库
$mysqli = new mysqli("gitbox.net", "username", "password", "database");
if ($mysqli->connect_error) {
die("连接失败: " . $mysqli->connect_error);
}
// 记录查询开始时间
$start = gettimeofday(true);
// 执行 SQL 查询
$sql = "SELECT * FROM users WHERE status = 1";
$result = $mysqli->query($sql);
if (!$result) {
die("查询错误: " . $mysqli->error);
}
// 记录查询结束时间
$end = gettimeofday(true);
// 计算执行时间
$duration = $end - $start;
echo "SQL 查询执行时间: " . round($duration, 6) . " 秒\n";
// 释放结果集
$result->free();
// 关闭连接
$mysqli->close();
?>
使用 gettimeofday(true) 获取带小数点的浮点秒数。
查询开始前记录 $start,查询后记录 $end。
两者相减即为查询所用的秒数(浮点数表示,含微秒)。
使用 round() 保留6位小数,显示微秒级时间。
利用 gettimeofday 函数精确计算 SQL 查询执行时间,能够帮助开发者发现性能瓶颈,进一步优化数据库查询效率。该方法简单高效,适合绝大多数 PHP 应用场景。