PHP 或 MySQL 中是否有内置函数可以提供页面上使用的 MySQL 查询总数?我在很多网站(主要是论坛)上看到他们在底部有一条消息,上面写着“页面在 0.6 秒内生成,有 20 个查询”。
如果没有内置任何东西,那么我会在我的数据库类中添加一些东西来计算它们,但它似乎是已经可用的那种功能。
选项一是通过包装器传递所有查询:
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 ?>