2010-01-28 140 views
3

我即將開始開發一個日誌記錄系統,以便在當前PHP應用程序中進行未來實現,以從MYSQL數據庫獲取負載和使用情況統計信息。記錄mysql查詢

的統計信息將稍後被用來獲得約每秒數據庫調用,查詢時間等

當然信息,當應用程序處於測試階段,這隻會被使用,因爲它肯定會引起有點額外的負載本身。

然而,我最大的問號,現在是,如果我要使用MYSQL登錄查詢,或去一個基於文件系統。我猜想,在使用基於文件的系統來處理日誌時,創建一些允許來自多個位置的文字的東西會有點令人頭疼。

你會怎麼做?

回答

3

的MySQL已經有日誌記錄建立在 - 手動的Chapter 5.2介紹這些。您可能會對常規查詢日誌(所有查詢),二進制查詢日誌(查詢更改數據)和慢日誌(查詢花費太長時間或不使用索引)感興趣。

如果你堅持要用自己的解決方案,你會想要寫一個數據庫,中間層,你的所有DB通話經歷,它可以處理的時機方面。至於你在哪裏編寫它們,如果你在開發中,這並不重要,但使用第二個分貝的想法並不差。不需要使用完全獨立的數據庫,就像使用不同的MySQL實例一樣(在不同的機器上,或者只是使用不同端口的不同實例)。我會使用第二個MySQL實例而不是文件系統 - 您將獲得像SUM和AVG一樣的所有優秀SQL函數來解析數據。

1

如果你是在MySQL做測試,你應該將結果存儲在不同的數據庫如Postgres,這樣你就不會與你的操作增加負載。

3

如果你感興趣的是長期的,非實時的分析,打開MySQL的定期查詢記錄。有很多工具可用於對查詢日誌(常規查詢和慢查詢)進行分析,爲您提供有關運行時間,返回的平均行數等信息。似乎是您在尋找的內容。

0

我同意macabail但只補充一點,你可以對夫婦這與一個cron作業和一個簡單的腳本來提取和生成您可能需要的任何統計數據。