Usar análisis de explicación en MySQL 8

En MySQL 8.0.18 hay una nueva característica llamada Explicar Analizar cuando durante muchos años solo teníamos el tradicional Explain. Sé que hay diferentes formatos, pero los que se basan en la misma información solo aparecen en un formato diferente con algunos detalles adicionales.

Mamá Explain Analyze es un concepto diferente. De hecho, ejecutará la solicitud y medirá el tiempo de ejecución utilizando el nuevo ejecutor iterador para cada paso. Ese mismo tema merece su propia publicación de blog sobre cómo funciona el nuevo ejecutor iterativo, y también escribiré una publicación sobre eso. Pero si no puede esperar y quiere leer, aquí hay algunos enlaces para obtener información adicional: preguntas de análisis del ejecutor del iterador, Dibujo del iterador de volcán, y Semiunión de iterador de volcán.

En este post, nos centraremos en lo que Explain Analyze nos puede dar.

Como siempre, comencemos con algunas pruebas. Tengo mi servidor de prueba con una tabla sbtest1:

Hay casi 1 millón de filas en esto:

en

colocar 493204 ,

1

1 625262 póngase en fila 0.10sen Explain Analyzecolocar

(

bucles tree =

1)

Index range scan on sbtest1 using idx3

cost=98896.53 rows=493204 1 Explain póngase en fila

actual time=0.021..96.488 rows=625262 loops=1en

  • colocar (0.18
  • segundo) Siempre usas el
  • formateado y me tomó un tiempo entender realmente lo que significa toda esta información. Desafortunadamente, la página de manual realmente no lo explica. Déjame tratar de llenar los espacios en blanco: – esta parte es bastante trivial, dice que usará un escaneo gamma en la tabla sbtest1 y usará el índice idx3.
  • – este es el costo y el mismo número de filas que el tradicional nos lo da.

: 0.021– Tiempo para volver a la primera fila (Init + primera lectura) en milisegundos.

96,488

– Tiempo para devolver todas las filas (Init + todas las llamadas de lectura) en milisegundos. 178ms fila = 625262 1 row in set (0.18 sec)– El número de fila devuelto por este iterador. 0.18sFinalmente, es el número exacto. 0.10sbucles = 1

– El número de bucles (número de llamadas Init).

La fuente de esta información está aquí:
Implementar EXPLICAR ANÁLISIS

.

Podemos ver toda esta información con cada paso, lo que nos brinda una gran ayuda e información para la optimización de consultas.


hora

= Explain Analyze 0,001 … 0,017

póngase en fila Explain Analyze =

78

1.

póngase en fila

*************************** Explain Analyze Explique

: -> Cuentas de fila en sbtest1 1 fila en conjunto (0.13 seg) Si no hay ninguna condición donde, o un grupo para, o cualquier otra cosa y solo una simple solicitud de cuentas, no nos da tiempo para qué paso o fila fue leído o qué índice se utilizó. Creo que esto es un poco minimalista y sería bueno ver alguna información básica. Conclusión Creo que es un gran paso en la dirección correcta, y estoy emocionado de ver si obtiene aún más funciones en el futuro, pero debería informar tiempos de ejecución más realistas.

Author: Ing. Luis

A lo largo de conocer Windows y otros sistemas operativos me eh encontrado con diversos tipos de error, ahora brindo soluciones según mi experiencia-

Deja un comentario