在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