【问题标题】:how to monitor database transaction?如何监控数据库事务?
【发布时间】:2011-07-30 19:37:09
【问题描述】:

我为工资系统编写了一个 web 应用程序,可以对 mysql 数据库执行(插入、更新、删除)操作。

我想知道

mysql 数据库中发生了多少事务?
mysql 数据库在 start_time 和 end_time 期间发生了多少事务?

【问题讨论】:

  • 没有 MySQL 日志文件吗??

标签: java mysql sql transactions


【解决方案1】:

MySQL 有命令计数器。可以通过SHOW GLOBAL STATUS LIKE "COM\_%" 看到它们。每次执行命令都会增加与其关联的计数器。与事务相关的计数器是Com_beginCom_commitCom_rollbackUptime 也是自服务器启动以来的秒数。读取和绘制这些值或它们的增量会产生您要求的信息。

还有Com_insertCom_updateCom_delete 及其变体的计数器。您可能还想绘制这些图表。

【讨论】:

  • 感谢@Isotopp,您的解决方案很简单,正是我想要的。 mysql - documentation 显示类似 'com_select' 的状态;
【解决方案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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-10
    • 1970-01-01
    • 1970-01-01
    • 2021-11-08
    • 1970-01-01
    • 1970-01-01
    • 2020-10-28
    相关资源
    最近更新 更多