Как отслеживать транзакции базы данных? - PullRequest
8 голосов
/ 06 апреля 2011

Я написал веб-приложение для системы начисления заработной платы, которое может (вставлять, обновлять, удалять) в базу данных mysql.

Я хочу знать

сколько транзакций произошло в базе данных mysql?
сколько транзакций произошло в базе данных mysql за время start_time и end_time?

Ответы [ 2 ]

4 голосов
/ 06 апреля 2011

MySQL имеет счетчики команд.Их можно увидеть с SHOW GLOBAL STATUS LIKE "COM\_%".Каждое выполнение команды увеличивает счетчик, связанный с ней.Счетчики, связанные с транзакциями: Com_begin, Com_commit и Com_rollback.Также Uptime - количество секунд с момента запуска сервера.Чтение и построение графиков этих значений или их дельта дает запрашиваемую информацию.

Существуют также счетчики для Com_insert, Com_update, Com_delete и их вариантов.Вы можете также составить график этого.

2 голосов
/ 06 апреля 2011

Не уверен, что это ответ, который вы ищете, я слышал, что следующий регистратор JDBC очень полезен для отслеживания того, что приложение делает с базой данных.Он должен показать, где ваше приложение открывает и совершает транзакции.После этого вы сможете написать несколько сценариев для обработки журналов, чтобы определить количество транзакций.

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

Он в основном находится между вашим приложением и настоящий драйвер базы данных.Вы добавляете префикс log4jdbc в свой URL JDBC.Например, если ваш обычный URL-адрес jdbc равен

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

, вы можете изменить его на:

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