Una de las grandes novedades en MySQL 5.1 es el destino de los logs, el log general y log de consultas lentas.

Hasta MySQL 5.0.x los logs eran almacenados en archivos planos, pero a partir de la versión 5.1.6 los mismos pueden ser escritos a archivos, a tablas del esquema mysql (general_log y slow_log) o en ambos destinos.

Para las nuevas instalaciones de MySQL 5.1.6 o posterior, en el mismo proceso de instalación se crean las tablas de logs junto al resto de las tablas del sistema. En cambio, si actualizas MySQL desde una versión anterior, deberás actualizar las tablas del sistema con mysql_upgrade.

Si bien disponer de información de logs en tablas, en vez de archivos, puede hacer más fácil su seguimiento, así como el desarrollo de aplicaciones que utilicen esa información, pero también debemos entender y aceptar que esto se llevará parte del rendimiento del motor de base de datos.

La opción que especifica en MySQL el destino de los logs es  --log-output[=value,...]. Aunque solo tendrá efecto si los logs están habilitados, pues por si sola no habilita los logs. --log-output puede recibir los siguientes valores:

  • log-output=FILE
  • log-output=FILE,TABLE
  • log-output=TABLE

Ahora, si se omite --log-output o si se especifica pero sin ningún valor el efecto es el mismo que --log-output=FILE. Es decir, el destino es a archivos (de MySQL 5.1.6 a 5.1.20, el valor por defecto es TABLE).

Para más información, consultar la documentación oficial de MySQL 5.1: Selecting General Query and Slow Query Log Output Destinations

Vía: MySQL Hispano