sql >> Base de Datos >  >> RDS >> Mysql

Habilitar el registro de consultas lentas (registro de consultas lentas) en la base de datos MySQL

Uno de los requisitos principales para un servidor web rápido es tener declaraciones o consultas SQL eficientes y efectivas que estén optimizadas. Cualquier comando o declaración de SQL (lenguaje de consulta estructurado) no óptimo que tarde demasiado en ejecutarse consumirá una gran cantidad de recursos del sistema, lo que hará que la base de datos MySQL se ejecute más lentamente y luego más y más consultas se atrasan en la cola y cuando se alcanza el límite de conexión, a los visitantes se les niega o se les niega la conexión. En el peor de los casos, su servidor web también se caerá o tendrá un rendimiento inferior continuo. El caso es especialmente cierto cuando usa el tipo de tabla MyISAM que usa el bloqueo de nivel de tabla en lugar del bloqueo de nivel de fila en un sitio web de alto tráfico.

En algún momento, una sola consulta SQL puede ser la causa de todos los problemas del servidor. MySQL tiene una funcionalidad integrada para capturar el registro de consultas lentas o identificar consultas que no son óptimas y tardan mucho tiempo en finalizar, lo que le permite registrar todas las consultas de ejecución lenta que tardaron una cantidad definida de segundos en ejecutarse por el motor de base de datos MySQL a un expediente. El registro de consultas lentas no está activado o activado de forma predeterminada en la instalación de MySQL, por lo que es uno de los registros menos utilizados.

Para habilitar el registro de consultas lentas, simplemente agregue la siguiente línea al archivo de configuración de MySQL (my.cnf o my.ini) y luego reinicie el servidor MySQL:

log-slow-queries

O,

log-slow-queries = [path to the log file]

Reemplazar [ruta al archivo de registro] con la ruta real al archivo de registro de consultas lentas en el que desea que MySQL escriba el registro, que es el valor opcional.

O puede iniciar mysqld con –log-slow-queries[=file_name] opción para habilitar el registro de consultas lentas. En ambas sintaxis, si no se especifica un nombre de archivo de registro, el nombre predeterminado es host_name -slow.log, almacenado en el directorio de archivos de datos de MySQL. Si se proporciona un nombre de archivo, pero no como una ruta de acceso absoluta, el servidor también escribe el archivo en el directorio de datos.

Después de habilitar el registro de consultas lentas, MySQL creará, capturará y registrará en el archivo de registro todas las instrucciones SQL que tardaron más de long_query_time. segundos para ejecutar, que está configurado de forma predeterminada en 10 segundos . El tiempo para adquirir los bloqueos de tabla iniciales no se cuenta como tiempo de ejecución. mysqld escribe una declaración en el registro de consultas lentas después de que se haya ejecutado y después de que se hayan liberado todos los bloqueos, por lo que el orden del registro puede ser diferente del orden de ejecución.

Luego puede examinar todas las consultas SQL lentas en el archivo de registro y luego tomar las medidas necesarias para optimizar las declaraciones SQL. El registro de consultas lentas le indicará a qué hora se completó la consulta, cuánto tardó en ejecutarse, cuánto tardó en asegurar sus bloqueos, cuántas filas se devolvieron como resultado, cuántas filas se examinaron para determinar el resultado, qué base de datos se utilizó y la consulta en sí. Pero tenga en cuenta que es posible que una consulta SQL contenida en el registro ya sea óptima, pero se haya ejecutado lentamente debido a que los recursos del sistema se han agotado por la declaración lenta real que debe ajustarse.