Habilitar registro de consulta lenta en MySQL

Mehvish Ashiq 30 enero 2023
  1. MySQL slow_query_log
  2. Habilite MySQL slow_query_log en Windows/Ubuntu
Habilitar registro de consulta lenta en MySQL

Hoy, usaremos MySQL shell en Windows y Ubuntu 20.04 para habilitar slow_query_log en MySQL. Para este tutorial, estamos usando MySQL versión 8.0 y Ubuntu 20.04.

MySQL slow_query_log

MySQL slow_query_log contiene instrucciones SQL que consumen más de long_query_time segundos para ejecutarse y necesitan al menos min_examined_row_limit filas (registros) para ser examinados.

Las consultas SQL que aparecen en MySQL slow_query_log son las consultas que consumen un tiempo considerable para ejecutarse. Por lo tanto, estos son los candidatos que necesitan optimización.

De forma predeterminada, el registro de consultas lentas está deshabilitado. Veamos cómo podemos habilitarlo en Windows y Ubuntu 20.04.

Habilite MySQL slow_query_log en Windows/Ubuntu

Las consultas que se dan a continuación se pueden ejecutar en los sistemas operativos Windows y Ubuntu. Primero debemos ingresar al shell de MySQL y luego ejecutar el siguiente comando para habilitar MySQL slow_query_log.

Código de ejemplo:

mysql> SET GLOBAL slow_query_log = 'ON';

Ahora, ejecute la siguiente consulta para asegurarse de que slow_query_log esté habilitado.

Código de ejemplo:

mysql> SHOW VARIABLES LIKE '%slow%';

Producción :

+-----------------------------+--------------------------+
| Variable_name               | Value                    |
+-----------------------------+--------------------------+
| log_slow_admin_statements   | OFF                      |
| log_slow_extra              | OFF                      |
| log_slow_replica_statements | OFF                      |
| log_slow_slave_statements   | OFF                      |
| slow_launch_time            | 2                        |
| slow_query_log              | ON                       |<====================
| slow_query_log_file         | DESKTOP-QF52OT4-slow.log |
+-----------------------------+--------------------------+
7 rows in set (0.01 sec)

Alternativamente, también podemos ejecutar el comando de la siguiente manera para ver si el slow_query_log está habilitado o no.

Código de ejemplo:

mysql> SHOW VARIABLES LIKE '%quer%';

Producción :

+----------------------------------------+--------------------------+
| Variable_name                          | Value                    |
+----------------------------------------+--------------------------+
| binlog_rows_query_log_events           | OFF                      |
| ft_query_expansion_limit               | 20                       |
| have_query_cache                       | NO                       |
| log_queries_not_using_indexes          | OFF                      |
| log_throttle_queries_not_using_indexes | 0                        |
| long_query_time                        | 10.000000                |
| query_alloc_block_size                 | 8192                     |
| query_prealloc_size                    | 8192                     |
| slow_query_log                         | ON                       |<=========
| slow_query_log_file                    | DESKTOP-QF52OT4-slow.log |
+----------------------------------------+--------------------------+
10 rows in set (0.00 sec)

Ver la penúltima fila en ambas salidas (dadas arriba). El slow_query_log está ON ahora.

Una vez que habilitamos el slow_query_log, también podemos habilitar otras opciones. Por ejemplo, también podemos actualizar el tiempo que necesita una consulta para ejecutarse antes de registrarse.

Código de ejemplo:

mysql> SET GLOBAL long_query_time = 20;
Mehvish Ashiq avatar Mehvish Ashiq avatar

Mehvish Ashiq is a former Java Programmer and a Data Science enthusiast who leverages her expertise to help others to learn and grow by creating interesting, useful, and reader-friendly content in Computer Programming, Data Science, and Technology.

LinkedIn GitHub Facebook

Artículo relacionado - MySQL Query