3

我正在测试我正在制作的 CMS 的性能,我想知道是否可以查看在页面加载时运行了哪些查询。例如,假设我运行“test.php”。当我转到它时,mySQL 运行的查询列表显示在页面底部 - 这可能吗?我以前见过网站这样做。

谢谢

4

2 回答 2

3

该功能SHOW FULL PROCESSLIST将显示所有进程的实时和过去历史。

SHOW FULL PROCESSLIST

如果您使用的是您有权安装软件包的服务器,您可以mysqltop实时安装和测试文件和 MySQL 资源使用情况和查询。

于 2012-10-14T01:40:23.427 回答
0

好吧,如果您的所有查询都通过一个函数,那么它应该很容易,但如果每个查询都只使用标准调用,那么它就不会了。这也让您可以轻松切换到不同的数据库类型或类似的东西。

例如,在我修改为库程序的 CMS 上,我有一个 DB Query 功能:

function db_query($qstring, $conn) {
$dbh = mysql_db_query($dbname,$qstring, $conn);
// this is where I would add some incrementing code, but it has to be global.
// or just do something like 
if($_GET["debug"]=="debuginSQLcount"){    
    echo $qstring
}
return $dbh;
}

然后使用它,我只是做类似的事情

$sql = "SELECT stuff";
}
$result = db_query($sql, $link);
if (!$result || db_numrows($result) < 1) {

如果你这样做,那么只需在函数中添加一行,它会增加一个 $GLOBALS 变量或类似的东西。阅读更多PHP global 或 $GLOBALS

于 2012-10-14T01:48:06.820 回答