我正在使用带有phpMyAdmin的MySQL数据库作为前端(我不确定我是否有远程/客户端访问权限)。我有一个查询数据库的脚本,并希望查看每个查询需要多长时间?最简单的方法是什么?我可以在服务器上安装另一个PHP应用程序吗?
答案 0 :(得分:1)
如果您有权访问MySQL
配置文件,则可以启用general query log
和slow query log
。
有关详细信息,请参阅here。
因为我认为5.1.6
,你也可以在运行时做到这一点:
SET GLOBAL long_query_time = 10 /* which queries are considered long */
SET GLOBAL slow_query_log = 1
,但无论如何都要尝试,当它出现时我不记得确切的版本。
答案 1 :(得分:1)
对于我处理的大多数应用程序,我都包含可以在开发环境中轻松打开的查询概要分析输出。这将输出SQL,执行时间,堆栈跟踪和显示解释输出的链接。它还突出显示运行时间超过1秒的查询。
虽然你可能不需要那些复杂的东西,你可以通过在PHP中编写一个包装查询执行的函数,并在会话中存储调试信息(或者只是输出它)来获得对查询运行时间的相当好的理解。 )。例如:
function run_query($sql, $debug=false, $output=false) {
$start = microtime(true);
$q = mysql_query($sql);
$time = microtime(true) - $start;
if($debug) {
$debug = "$sql<br/>$time<br/><br/>";
if($output) {
print $debug;
} else {
$_SESSION['sql_debug'] .= $debug;
}
}
return $q;
}
这只是一个粗略的想法。你可以根据需要调整它。
希望有所帮助 -
答案 2 :(得分:0)
您应该将long_query_time设置为1,因为将其设置为10将排除大多数(如果不是全部)查询。 在mysql提示符下输入
设置@@ long_query_time = 1;