Un colega de CleverCode recomendó recientemente una herramienta para analizar sentencias SQL en MySQL, perfilado, y descubrió que esta herramienta es muy buena, que puede analizar con precisión el tiempo específico dedicado a las sentencias SQL durante el proceso de consulta. CleverCode lo resume aquí y lo comparte contigo.
1 Introducción
El Query Profiler de MySQL es una herramienta muy conveniente de análisis diagnóstico, a través de la cual puedes obtener el consumo de múltiples recursos en todo el proceso de ejecución de una consulta, como CPU, IO/S, IPC, SWAP, etc., así como la aparición de FALLOS DE PÁGINA, CONMUTACIÓN DE CONTEXTO, etc., y también obtener la ubicación de cada función llamada por MySQL en el archivo fuente durante la ejecución de la consulta.
MySQL versión 5.0.37 o posterior soporta la función de depuración PROFILING, que permite entender los detalles de los recursos consumidos por las sentencias SQL. Como requiere llamar a la función getrusage() del sistema, solo puede usarse en plataformas de clases Linux/Unix, no en Windows. Además, PROFILING es para procesar procesos en lugar de hilos, y otras aplicaciones en el servidor pueden afectar tus resultados de depuración, por lo que esta herramienta es adecuada para depurar durante el desarrollo, y si quieres depurar en un entorno de producción, debes prestar atención a sus limitaciones.
2 Operación
2.1 Comprueba si el perfil está activado, está desactivado por defecto.
2.2 Habilitar el perfilado. El perfilado de variables es una variable de usuario que debe volver a activarse cada vez.
2.3 Ejecutar las siguientes sentencias: Para evitar haber almacenado SQL previamente en QCACHE, se recomienda forzar que la instrucción SELECT no realice la detección de QCACHE al ejecutar SQL. Esto te permite presentar la precisión del análisis.
2.4 UsoConsulta de perfil de mostrarLa más recienteInformación de ejecución de la afirmación。 (Análisis: selecciona sql_no_cache cuenta(*) de system_user donde la edad > 20 años)
2.5 Usando perfiles de show. Consulta una lista de sentencias que se ejecutan en el servidor. (id de consulta, tiempo invertido, sentencia).
2.6 Utilizar el perfil de mostrar para consultar la información de ejecución del ID de la formulación. Aquí analizamos la declaración con ID 6. (Análisis: selecciona sql_no_cache conteo(*) de system_user donde la edad > 20).
2.7 Obtener CPU y bloquear el consumo de IO.
2.8 Obtención de información adicional. se puede obtener realizando "MOSTRAR PERFIL *** PARA CONSULTA n". Dirección de referencia: http://dev.mysql.com/doc/refman/5.6/en/show-profile.html.
|