Cómo ver la declaración SQL de ejecución de SQL
A continuación, veamos el uso de resúmenes de oraciones en estos dos aspectos.
1. Diccionario de rendimiento
mysql y gt llaman a sys_setup_enable_consumer('statements');
+ - +
|Resumen. |
+ - +
|4 consumidores habilitados|
+ - +
65438 +0 filas en la colección (0,00 segundos )
La consulta es normal, 0 filas se ven afectadas (0,00 segundos)
Después de abrir, el SQL anterior se ejecuta varias veces.
Después, es conveniente analizar la ejecución de dichas declaraciones desde la biblioteca del sistema, incluido el número de ejecuciones, el tiempo de ejecución, el número de registros escaneados, el tiempo de bloqueo, si se utiliza clasificación, etc.
2. Complemento de reescritura de consultas
Por ejemplo, para evitar que la tabla p1 se elimine a través del campo r1, puede utilizar el complemento de reescritura de consultas para realizar la conversión directamente en el Capa de análisis de declaraciones MySQL y luego use la función de resumen state_digest_text.
Supongamos que los valores de identificación del campo de la tabla p1 son todos positivos.
Eliminar de p1, donde id = 1000
Reescribirlo como,
Eliminar de p1, donde id =-1
Utilice la función state_digest_text para personalizar las reglas de reescritura de este SQL.
mysql>Insertar en query_rewrite.rewrite_rules(pattern,replacement,pattern_database)->value(->statement_digest_text('Eliminar de p1 donde id=1000 '), ->statement_digest_text(' eliminar de p 1 , donde id = -1 '), ->ytt '->); La consulta es normal, 1 fila se ve afectada (0,01 segundos)
Impacto de la declaración de reescritura de la consulta:
mysql & gt se elimina de p1, donde id = 20000 la consulta es normal, 0 filas están afectadas, 1 advertencia (0.00 segundos)
mysql>show advertencia\G * * * * * * * * * * * * * * * * * * * * * * * * * * * 1. Línea ************************** Nivel: Código de comentario: 1105 Mensaje: La consulta "eliminada de p1 donde id = 20000" fue bloqueada por la consulta reescribir complemento Reescribir como "eliminar de ` p1 donde ` id` = - 20000 ", en la línea 1 en set (0.00 seg) mysql > select count(*) from p1; | 9000001 |+-+1 filas en la colección (1,59 segundos)
Resumen
La nueva función de resumen de declaraciones en MySQL 8.0 puede analizar fácilmente todos los aspectos de la ejecución de declaraciones SQL, mucho más simple. que analizar escenarios similares antes.