有没有办法在浏览器中查看当前的mysql查询及其响应时间? 我正在研究简单的PHP而不是任何框架。任何人都知道FF的任何插件,它给了我这个信息。
请帮忙
感谢
答案 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)。我对其他浏览器一无所知。
感谢。