繁体   English   中英

分析MySQL数据库上查询的执行时间?

[英]Analyze execution time of queries on MySQL database?

我正在将MySQL数据库与phpMyAdmin作为前端使用(我不确定我是否具有远程/客户端访问权限)。 我有一个查询数据库的脚本,想查看每个查询花费多长时间? 最简单的方法是什么? 我可以在服务器上安装另一个PHP应用程序吗?

如果您有权访问MySQL配置文件,则可以启用general query logslow query log

有关详细信息,请参见此处

由于我认为5.1.6 ,因此您也可以在运行时执行此操作:

SET GLOBAL long_query_time = 10  /* which queries are considered long */
SET GLOBAL slow_query_log = 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;

 }

那只是一个粗略的主意。 您可以根据需要进行调整。

希望有帮助-

您应该将long_query_time设置为1,因为将其设置为10将会排除大部分(如果不是全部)查询。 在mysql提示符下输入

设置@@ long_query_time = 1;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM