如何在PHP中显示MySQL查询的执行时间?
我正在开发一个PHP应用程序,它在文本框中接受查询并返回分页结果。作为应用程序的一部分,我想报告查询的运行时间 以下是我迄今为止所做的工作 我首先通过直接在文本框中输入并运行脚本来启用分析:如何在PHP中显示MySQL查询的执行时间?,php,mysql,pdo,query-optimization,Php,Mysql,Pdo,Query Optimization,我正在开发一个PHP应用程序,它在文本框中接受查询并返回分页结果。作为应用程序的一部分,我想报告查询的运行时间 以下是我迄今为止所做的工作 我首先通过直接在文本框中输入并运行脚本来启用分析: set global profiling=1 使用提供的文本框输入以下查询: select@@profiling 并获得: 1 最后,我按如下方式运行查询: 从日志中选择* 但是,当我为运行命令以分析查询时: 显示配置文件 我没有收到任何结果,页面上也没有显示任何内容 由于在“show profi
set global profiling=1
使用提供的文本框输入以下查询:
select@@profiling
并获得:
1
最后,我按如下方式运行查询:
从日志中选择*
但是,当我为运行命令以分析查询时:
显示配置文件
我没有收到任何结果,页面上也没有显示任何内容
由于在“show profiles”命令之后没有看到任何表,这是否意味着没有足够的权限,或者我错过了另一个步骤
我遵循以下程序:
请告知
我的PHP代码如下:
日志
输入SQL查询
这个怎么样:
$start = microtime(true);
$stmt->execute();
$end = microtime(true);
echo "This query took " . ($end - $start) . " seconds.";
这很有魅力
$db->query('set profiling=1'); //optional if profiling is already enabled
$db->query($_POST['query']);
$stmt = $db->query('show profiles');
$db->query('set profiling=0'); //optional as well
$records = $stmt->fetchAll(PDO::FETCH_ASSOC);
$errmsg = $stmt->errorInfo()[2]; //Output the error message
更新(以下内容现在在我当前的设置中对innodb有效)
来自phpmyadmin的(显示配置文件)的结果
Query_ID Duration Query
1 0.00010575 SELECT DATABASE()
谢谢您的回复。这是唯一可行的方法吗?我没有想到这可能是唯一可行的解决办法。感谢您的帮助。正确的信息应该是“此查询已完成”。($end-$start)。“秒。”
@MarcioMazzucato你说得对,microtime(true)
以秒为单位返回一个浮点值。我相应地编辑了答案。
Query_ID Duration Query
1 0.00010575 SELECT DATABASE()