2011-04-06 80 views
8

我寫了一個可以對mysql數據庫執行(插入,更新,刪除)的工資系統的web應用程序。如何監控數據庫事務?

我想知道

多少交易在mysql數據庫發生了什麼?
start_time和end_time期間在mysql數據庫中發生了多少事務?

+2

是不是有沒有MySQL日誌文件? – evotopid 2011-04-06 12:58:49

回答

4

MySQL有命令計數器。他們可以看到SHOW GLOBAL STATUS LIKE "COM\_%"。每次執行一個命令都會增加與之關聯的計數器。交易相關的計數器是Com_begin,Com_commitCom_rollback。另外Uptime是自服務器啓動以來的秒數。讀取和繪製這些值或它們的增量可以得出您要求的信息。

也有針對Com_insert,Com_update,Com_delete及其變體的計數器。你可能也想繪製這些圖。

+0

謝謝@Isotopp你的解決方案很簡單,正是我所期待的。 [mysql - documentation](http://dev.mysql.com/doc/refman/5.5/en/show-status.html)顯示狀態,如'com_select'; – Nandha 2011-04-07 05:24:54

2

不確定這是你正在尋找你的答案我聽說下面的JDBC記錄器對於跟蹤應用程序對數據庫做什麼非常有用。它應該顯示您的應用程序在哪裏打開並提交事務。然後您應該能夠編寫一些腳本來處理日誌以確定數量事務。

http://code.google.com/p/log4jdbc/

它的應用程序和真正數據庫驅動程序之間基本上坐。您將一個log4jdbc前綴添加到您的JDBC URL。例如,如果你的正常JDBC URL是

jdbc:mysql://db.foo.com/webapplicationdb 

那麼你將其更改爲:

jdbc:log4jdbc:mysql://db.foo.com/webapplicationdb