2011-04-06 16 views
8

He escrito una aplicación web para el sistema de nómina que puede hacer (insertar, actualizar, eliminar) en la base de datos mysql.cómo controlar la transacción de la base de datos?

Quiero saber

cuántos transacción ocurrió en la base de datos MySQL?
¿Cuántas transacciones ocurrieron en la base de datos mysql durante start_time y end_time?

+2

¿No hay ningún archivo de registro MySQL? – evotopid

Respuesta

4

MySQL tiene contadores de mando. Se pueden ver con SHOW GLOBAL STATUS LIKE "COM\_%". Cada ejecución de un comando incrementa el contador asociado a él. Los contadores relacionados con la transacción son Com_begin, Com_commit y Com_rollback. También Uptime es el número de segundos desde el inicio del servidor. Al leer y graficar estos valores o su delta se obtiene la información que usted solicita.

También hay contadores para Com_insert, Com_update, Com_delete y variaciones de los mismos. Es posible que desee graficar estos también.

+0

gracias @Isotopp su solución es simple y exactamente lo que estaba buscando. [mysql - documentation] (http://dev.mysql.com/doc/refman/5.5/en/show-status.html) muestra el estado como 'com_select'; – Nandha

2

No estoy seguro de que esta es la respuesta que está buscando He oído que el siguiente registrador JDBC es muy útil para rastrear lo que una aplicación está haciendo a una base de datos. Debe mostrar dónde se está abriendo su aplicación y realizar transacciones. Debería poder escribir algunos scripts para procesar los registros para determinar las transacciones numéricas.

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

Básicamente se encuentra entre la aplicación y el controlador de la base de datos reales . Agrega un prefijo log4jdbc a su URL JDBC. Por ejemplo, si su URL de JDBC normal es

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

allí tendría que cambiarlo a:

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