MySQL avanzado (6) análisis de intercepción de consultas registro de consultas lentas volcado de MySQL herramienta de análisis de registros de consultas lentas y lentas mostrar perfil registro de consultas globales

Análisis avanzado de interceptación de consultas de MySQL (6)

Pregunta : En el entorno de desarrollo, ¿cuáles son los pasos para analizar y optimizar SQL?

Proceso :

  1. Observe, ejecute durante al menos 1 día para ver la producción lenta de SQL
  2. Abra el registro de consultas lentas, establezca el umbral, por ejemplo, si supera los 5 segundos, es SQL lento, y agárrelo
  3. EXPLICAR + análisis SQL lento
  4. mostrar perfil análisis adicional
  5. Gerente de operación y mantenimiento o DBA, para el ajuste de parámetros del servidor de base de datos SQL

Puntos resumen :

  • La consulta lenta está activada y capturada
  • EXPLICAR + análisis SQL lento
  • muestre la consulta del perfil los detalles de ejecución y el ciclo de vida de SQL en el servidor MySQL
  • Ajuste de parámetros del servidor de base de datos SQL

1 registro de consultas lento

El registro de consultas lentas es un registro proporcionado por MySQL. Se utiliza para registrar declaraciones en MySQL cuyo tiempo de respuesta supera el umbral . Específicamente , SQL con un tiempo de ejecución superior al valor long_query_time (predeterminado 10 s) se registrará en el registro de consultas lentas. .

De forma predeterminada, la base de datos MySQL no activa la función de registro de consultas lentas , debemos configurar este parámetro manualmente. Si no es necesario para el ajuste, generalmente no se recomienda habilitar este parámetro , lo que provocará un consumo de rendimiento.

1.1 Cómo utilizar

Compruebe si está encendido :

SHOW VARIABLES LIKE '%slow_query_log%'

Inserte la descripción de la imagen aquí

Habilitar el registro de consultas lentas :

SET GLOBAL slow_query_log = 1
-- 该语句只对当前数据库生效,且mysql重启后失效

Si necesita comenzar de forma permanente (no recomendado): Modifique el archivo de configuración my.cnf

--在[mysqld]下新增
slow_query_log =1
slow_query_log_file=/var/lib/mysql/my-log.log

Configure el tiempo de umbral de consulta lenta :

SHOW VARIABLES LIKE '%long_query_time%' 
SET GLOBAL long_query_time = 3

Consulta cuántos registros de consultas lentas hay en el sistema actual :

show GLOBAL STATUS like '%Slow_queries%'

Inserte la descripción de la imagen aquí

Caso de prueba :

-- 模拟一条执行时间需要15S的sql
select sleep(15);

Ver registros en la dirección de registro de consultas lentas:

Inserte la descripción de la imagen aquí

1.2 MySQL dump lenta herramienta de análisis de registro de consultas lentas

En un entorno de producción, si desea analizar manualmente el registro, encontrar y analizar SQL, es muy problemático. Mysql proporciona herramientas de análisis de registros.

2 mostrar perfil

Show profile es proporcionado por mysql que se puede utilizar para analizar el consumo de recursos de la ejecución de la declaración en la sesión actual . Se puede utilizar para la medición de ajuste de SQL.

Encienda la función de mostrar perfil :

set profiling = on

Utilizar :

  • Ejecute el sql que se analizará primero

  • Ver resultados

     show profiles;
    

Inserte la descripción de la imagen aquí

  • Resultados de diagnóstico, puede ver el tiempo empleado en el ciclo de vida completo de la ejecución de SQL

    show profile cpu,block io for query 137;
    

Inserte la descripción de la imagen aquí

3 Registro de consultas global

Nunca lo inicie en un entorno de producción

Encender:

set GLOBAL general_log = 1;
set global log_output ='TABLE';

Después de eso, todas las declaraciones sql que escriba se registrarán en la tabla general_log en la biblioteca mysql

Ver el sql ejecutado:

select * from mysql.general_log;

poner = 'TABLA';


此后,你所编写的所有sql语句,将会记录到mysql库内的general_log表中

查看执行的sql:

```sql
select * from mysql.general_log;

Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/weixin_44634197/article/details/108902771
Recomendado
Clasificación