有没有办法在浏览器中查看当前查询响应时间?

时间:2011-05-12 05:54:57

标签: php mysql firefox-addon

有没有办法在浏览器中查看当前的mysql查询及其响应时间?  我正在研究简单的PHP而不是任何框架。任何人都知道FF的任何插件,它给了我这个信息。

请帮忙

感谢

6 个答案:

答案 0 :(得分:4)

我使用MySQL服务器的分析功能(从5.0.37开始)。

<?php

// profiling init
$set_profiling = $mysqli->query( 'SET profiling = 1' );

// some stuff
$result1 = $mysqli->query( 'SELECT DESTINATIONCODE, ZONENAME FROM ZONES' );
$result2 = $mysqli->query( 'SELECT ZONENAME FROM ZONES' );


// showing profiling printout
$show_profiles = $mysqli->query( 'SHOW PROFILES' );
while( $row = $show_profiles->fetch_assoc() ) {
    echo '<pre>';   
    print_r( $row );    
    echo '</pre>'
}

此外,如果您想在每个查询后使用更详细的报告,可以使用:

$show_profile = $mysqli->query( 'SHOW PROFILE' );

检查http://dev.mysql.com/tech-resources/articles/using-new-query-profiler.html

这有点原始可视化,但它确实有效。

示例输出:

Array
(
    [Query_ID] => 1
    [Duration] => 0.00012000
    [Query] => SELECT DESTINATIONCODE, ZONENAME FROM ZONES
)
Array
(
    [Query_ID] => 2
    [Duration] => 0.00006800
    [Query] => SELECT ZONENAME FROM ZONES
)

#1查询的详细信息:

Array
(
    [Status] => (initialization)
    [Duration] => 0.000002
)
Array
(
    [Status] => checking query cache for query
    [Duration] => 0.000003
)
Array
(
    [Status] => checking privileges on cached 
    [Duration] => 0.000002
)
Array
(
    [Status] => checking permissions
    [Duration] => 0.000001
)
Array
(
    [Status] => sending cached result to clien
    [Duration] => 0.000056
)
Array
(
    [Status] => logging slow query
    [Duration] => 0.000001
)

答案 1 :(得分:1)

Firefox插件无法访问作为PHP代码一部分发生的MySQL查询,这根本不可能。

如果您具有对服务器的shell访问权限,则可以尝试查看MySQL查询日志:http://dev.mysql.com/doc/refman/5.1/en/query-log.html

答案 2 :(得分:1)

你可以通过做这样的事情在php中做到这一点。(结果将是浮点值)

function time_in_float() {
    $time = microtime();
    $time = explode(" ",$time);
    $time = $time[1] + $time[0];
    return $time;
}
$startTime = time_in_float();

$query = "SELECT SOME QUERY";
mysql_query($query);

$endTime = time_in_float();

$queryTime = ($endTime - $startTime);
echo $queryTime . ' micro seconds';

答案 3 :(得分:0)

Firefox对你的mysql查询一无所知,因为它们不是客户端处理的。 (至少,大多数时候,我猜你不是在谈论一些真正深奥的情况)。

如果你有一个请求的某个请求(例如AJAX,或加载一个特殊文件),你可以看到该时间的最佳时间(最容易使用firebug插件),但你不能单独输出PHP脚本中的查询。

您可以做的事情是在PHP中查询的时间,并将其作为值返回(使用microtime()和一些基本数学),但这是其他的。

答案 4 :(得分:0)

将此行添加到my.ini [从我的WAMP中剪切粘贴]

[mysqld]
port=3306
# Set Slow Query Log
long_query_time = 1
slow_query_log = 1
slow_query_log_file = "E:/wamp/logs/slowquery.log"
#Set General Log
log = "E:/wamp/logs/genquery.log"

答案 5 :(得分:-1)

您可以在Firefox中添加新的加载项(YSlow)。我对其他浏览器一无所知。

感谢。