Anuncios

Bienvenidos sean a este post, hoy veremos como es el formato del archivo del log y la tabla de log lento.

Anuncios

Cuando iniciamos el log nos genera un encabezado muy similar al visto al log general:

/usr/sbin/mysqld, Version: 10.3.29-MariaDB-0+deb10u1 (Debian 10). started with:
Tcp port: 3306  Unix socket: /run/mysqld/mysqld.sock
Time		    Id Command	Argument
Anuncios

Por no decir que es el mismo, a continuacion les dejo un ejemplo de como es una entrada en el log:

# Time: 140116 11:19:05
# User@Host: root[root] @ localhost []
# Thread_id: 4  Schema: test  QC_hit: No
# Query_time: 0.059419  Lock_time: 0.000340  Rows_sent: 1  Rows_examined: 66620
SET timestamp=1389867545;
SELECT COUNT(*) FROM t
 WHERE a > b;
Anuncios

Como pueden ver nos dan ciertos campos para describirnos cual es cada uno, veamos el detalle de cada uno de estos campos:

  • Time, es la hora y fecha de cuando se registro el evento
  • User@host, es la cuenta que realizo la ejecucion almacemada, con el correspondiente equipo
  • Thread id, es el id de la conexion
  • Schema, es la base de datos
  • QC Hit, nos informa si el query fue encontrado en el cache de queries
  • Query Time, el tiempo total de ejecucion del query
  • Lock time, el tiempo que llevo el bloqueo sobre la tabla
  • Rows sent, cuantas lineas se enviaron
  • Row examined, la cantidad de lineas que se buscaron
Anuncios

Por ultimo tenemos los dos comandos que se usaron para generar el log anterior, si tuvieramos activo la opcion de log-short-format, la informacion almacenada en el log se veria como la siguiente:

# Thread_id: 5  Schema: test  QC_hit: No
# Query_time: 0.230296  Lock_time: 0.000302  Rows_sent: 1  Rows_examined: 263337
SET timestamp=1389869887;
SELECT COUNT(*) FROM t WHERE a > b;
Anuncios

En este caso nos brindara solo informacion mas importante para una depuracion, como son el id de conexion, la base de datos, si estaba en el cache o no y los datos de ejecucion, omitiendo los datos de cuando sucedio y quien fue el responsable, esto puede ser util para cuando necesitamos saber cual fue el inconveniente y no quien fue el generador del inconveniente, pero como siempre quedara a criterio de cada uno y la necesidad del momento para trabajar con un log u otro.

Anuncios

La tabla slow_log

Tal como en todos (o casi todos) los logs vistos hasta ahora no solo tenemos la posibilidad de trabajar con archivos sino tambien con tablas dentro de la base mysql, este es muy similar al anterior pero con una sutiles diferencias, veamos las columnas que la componen:

  • start_time, almacena la fecha y hora de sucedido al evento
  • user_host, almacena la cuenta involucrada
  • query_time, almacena el tiempo de ejecucion del query
  • lock_time, almacena el tiempo de bloqueo de la tabla
  • rows_sent, almacena la cantidad de lineas enviadas
  • rows_examined, almacena la cantidad de lineas verificadas
  • db, almacena la base involucrada
  • last_insert_id, almacena informacion sobre las columnas AUTO_INCREMENT en el futuro
  • insert_id, idem al anterior
  • server_id, almacena el id del servidor informado en un entorno de replicacion
  • sql_text, almacena los comandos involucrados en esta ejecucion
  • thread_id, almacena el id de conexion
  • rows_affected, almacena las lineas que fueron afectadas por este query
Anuncios

Como pueden ver tenemos la misma informacion que en el caso de los archivos pero tambien tenemos algunos datos adicionales que nos pueden ser utiles para determinados ambientes, por ejemplo para entornos con muchos servers, o para obtener algunos datos adicionales y poder ser utilizados por programas almacenados.

Anuncios

En resumen, hoy hemos visto como es el formato de un archivo del log lento, una descripcion de los datos que nos devuelve y como es la version resumida o corta, tambien hemos visto cuales son las columnas que componen a la tabla de log lento, y algunos campos adicionales que nos pueden ser utiles, espero les haya sido util sigueme en tumblr, Twitter o Facebook para recibir una notificacion cada vez que subo un nuevo post en este blog, nos vemos en el proximo post.

Anuncios

Donación

Es para mantenimento del sitio, gracias!

$1.50