在PHP或MySQL中是否有一个内置函数可以提供页面上使用的MySQL查询的总数?我在很多网站(主要是论坛)上看到他们在底部有一条消息,表示“页面生成时间为0.6秒,有20个查询”。如何计算每页使用的MySQL查询总数?
如果没有什么内置的东西,我会添加一些东西到我的数据库类来计算它们,但它看起来像已经可用的那种功能。
在PHP或MySQL中是否有一个内置函数可以提供页面上使用的MySQL查询的总数?我在很多网站(主要是论坛)上看到他们在底部有一条消息,表示“页面生成时间为0.6秒,有20个查询”。如何计算每页使用的MySQL查询总数?
如果没有什么内置的东西,我会添加一些东西到我的数据库类来计算它们,但它看起来像已经可用的那种功能。
选项之一将是通过包装来传递您所有的疑问的:
function custom_mysql_query($sql)
{
$GLOBAL['query_count'] ++;
return mysql_query($sql);
}
请注意这是只用于说明目的,并没有错误处理等
您可以查询MySQL的数量查询运行:
mysql> SHOW STATUS LIKE 'Com_select';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| Com_select | 2 |
+---------------+-------+
1 row in set (0.00 sec)
你可能想要做这样的事情:
SHOW STATUS LIKE 'Com_%';
,然后加在一起Com_select,Com_update,Com_insert和Com_delete
我所做的是让一个sql查询类进行计数,每次运行该类中的查询方法时,它都会将1添加到名为querycount的变量中,这样我就可以运行总计。
为了避免全局,在你的DB类:
class db {
public static $query_count = 0;
public static function query($str) {
self::$query_count++;
// your db query method here
}
}
然后,只需访问您的静态查询计数是这样的:
<?= db::$query_count ?>
谢谢,'显示状态'正是我想要的。我去了:SHOW STATUS WHERE Variable_name IN('Com_select','Com_update','Com_insert','Com_delete') – DisgruntledGoat 2009-05-06 20:00:49