Estadísticas de Innodb

Estamos ejecutando InnoDB como un motor MySQL y usando phpMyadmin para administrar nuestra database. Bajo StatusQuery statistics , phpMyadmin nos da lo siguiente:

phpMyAdmin Captura de pantalla

Nos gustaría saber de dónde provienen estas cifras porque nos gustaría crear un gráfico de Munin que muestre la evolución de estas statistics a lo largo del time.

Cuando ejecutamos el SHOW STATUS; consulta aquí es lo que tenemos:

 Innodb_rows_deleted 247555 Innodb_rows_inserted 822911 Innodb_rows_read 694934413 Innodb_rows_updated 15048 

Como se puede ver hay una diferencia sustancial, aunque ambos estaban tomando casi al mismo time.

P: ¿Sabes de dónde phpMyadmin sus valores?

Tenga en count la documentation de MySQL en SHOW STATUS

Mirando los numbers, phpmyadmin debe estar usando SHOW GLOBAL STATUS; porque trae statistics desde el momento en que se inició MySQL.

Cuando utiliza SHOW STATUS; , que devuelve statistics de nivel de session que se convierten en alarmantes cuando termina la connection de DB.

Los mejores datos se obtienen preguntando a MySQL. También es mucho más fácil implementar ese bash de interfaz con phpMyAdmin. Cómo phpMyAdmin consigue sus numbers es cualquier persona conjetura pero no confiaría en ellos.

Como RolandoMySQLDBA mencionó, lo primero que debemos tener en count es la diferencia entre SHOW GLOBAL STATUS y SHOW STATUS ( ver documentation ). Respecto a los valores mostrados por phpMyadmin , se obtienen de las variables Com_* confirmadas por el código fuente:

server_status.php

  $sql = "SELECT concat('Com_', variable_name), variable_value FROM data_dictionary.GLOBAL_STATEMENTS [...] // For the percentage column, use Questions - Connections, because // the number of connections is not an item of the Query types // but is included in Questions. Then the total of the percentages is 100. $name = str_replace(array('Com_', '_'), array('', ' '), $name); 

Después de la comparación, parece que phpMyAdmin está mostrando los valores correctos (es decir, hacer coincidir lo que MySQL está reportando).