gpt4 book ai didi

mysql - Laravel 到 MySQL 查询连接计时日志记录

转载 作者:行者123 更新时间:2023-11-29 15:59:26 25 4
gpt4 key购买 nike

我一直在尝试解决 Laravel 站点的延迟和计时问题,并且很好奇是否有办法检查 Laravel 站点主机与其 MySQL 数据库主机之间的连接时间。

我正在努力消除出现延迟的可能性,并且我想确保这两个主机位于不同的主机上(尽管在同一本地网络中)不是问题。

最佳答案

由于 Laravel 是用 PHP 实现的,所以你可以这样做。

$TimeQuerySent = microtime(true) ;
// Send Request
$TimeQueryReturned = microtime(true) ;
$TimeConsumed = $TimeQueryReturned - $TimeQuerySent ;

上述利用了这样一个事实:以这种方式调用 microtime 会导致它返回一个 float 。由于时间向前推进,$TimeQueryReturned 始终大于 $TimeQuerySent,并且如果连接上存在短暂的延迟,则微秒精度应该足够。

当然,上面只是测量了请求所消耗的总时间,其中包括服务器执行查询所花费的时间。

可以通过在查询中添加类似以下内容来从服务器端获取信息。

declare StartTime FLOAT;    
set StartTime=UNIX_TIMESTAMP(UTC_TIMESTAMP(6));
select starttime,....

当第一个语句是存储例程或动态生成的 SQL 语句中的第一个语句时,StartTime 返回查询开始在服务器上执行的时间,该时间尽可能接近准确获取 MySQL 引擎开始工作的时间。请求 UTC_TIMESTAMP(6) 会导致时间戳返回到最接近的微秒,并隐式将其转换为 float ,同时将 UNIX_TIMESTAMP 函数包装在其周围,将返回的时间戳转换为Unix 时间戳。由于所有三个值都是浮点 Unix 时间戳,因此您可以比较所有三个时间,以更好地确定延迟是网络延迟还是查询执行延迟。

关于mysql - Laravel 到 MySQL 查询连接计时日志记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56301994/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com