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;