Estadísticas de consultas en MySQL
Las estadísticas importantes recopiladas para una consulta realizada, incluido el tiempo, tablas temporales, índices, uniones y más, se recopilan en la pestaña de resultados del editor SQL de Estadísticas de consulta (consulte las dos figuras siguientes).
Requisitos
Consulta habilitada y recopilación de estadísticas del esquema de rendimiento.
Performance_schema tiene habilitada la instrumentación de declaraciones.
Editor SQL: estadísticas de consultas
Plan de explicación visual
Al utilizar los datos adicionales incluidos en el formato JSON mejorado, la función de explicación visual crea y presenta una representación visual de la declaración EXPLAIN de MySQL. Todos los formatos EXPLAIN, incluido el formato estándar, el JSON extendido sin formato y el plan de consulta visual, están disponibles en MySQL Workbench para consultas ejecutadas.
Demostrar visualmente el uso
Ejecute su consulta en el editor SQL, luego elija Proceso de ejecución en el menú de resultados de la consulta para recibir una explicación visual del plan de ejecución. El plan de ejecución contiene una vista de explicación tabular que se parece a lo que ve cuando ejecuta EXPLAIN en el cliente MySQL además de la vista de explicación visual, que es la predeterminada. Consulte Optimización de consultas con EXPLAIN para obtener detalles sobre cómo MySQL ejecuta declaraciones.
Convenciones de explicación visual
Un diagrama de explicación visual debe leerse de abajo hacia arriba y de izquierda a derecha. En los ejemplos de diagramas que siguen se ofrece una descripción general de las convenciones gráficas, textuales e informativas utilizadas para representar diversos elementos de los planes de explicación visual. Para obtener más detalles, consulte:
Estándares gráficos
Convenciones informativas y textuales
El diagrama de explicación visual de la primera figura proporciona una descripción visual de la siguiente consulta.
select * FROM employee_table
Un ejemplo de explicación visual
Convenciones gráficas
Cajas Estándar: mesas
Cajas redondeadas: operaciones como GROUP y ORDENAR
Cuadros enmarcados: subconsultas
-
Diamantes: se une
Convenciones textuales e informativas
Texto estándar debajo de los cuadros: nombre de la tabla (o alias)
Texto en negrita debajo de los cuadros: clave/índice que se utilizó
Número en la parte superior derecha de un cuadro: número de filas utilizadas de la tabla después del filtrado
Número en la parte superior izquierda de un cuadro: costo relativo de acceder a esa tabla (requiere MySQL 5.7 o superior)
Número a la derecha de los diamantes del bucle anidado (o unión hash): número de filas producidas por JOIN
Número encima de los diamantes: coste relativo del JOIN (requiere MySQL 5.7 o superior)
La siguiente tabla muestra los colores asociados y las descripciones utilizadas en el diagrama de explicación visual. Para obtener más información sobre estimaciones de costos, consulte El modelo de costos del optimizador.
Información del diagrama de explicación visual
System Name |
Color |
Text on Visual Diagram |
Tooltip Related Information |
---|---|---|---|
SYSTEM |
Blue |
Single row: system constant |
Very low cost |
CONST |
Blue |
Single row: constant |
Very low cost |
EQ_REF |
Green |
Unique Key Lookup |
Low cost -- The optimizer is able to find an index that it can use to retrieve the required records. It is fast because the index search directly leads to the page with all the row data |
REF |
Green |
Non-Unique Key Lookup |
Low-medium -- Low if the number of matching rows is small; higher as the number of rows increases |
FULLTEXT |
Yellow |
Fulltext Index Search |
Specialized FULLTEXT search. Low -- for this specialized search requirement |
REF_OR_NULL |
Green |
Key Lookup + Fetch NULL Values |
Low-medium -- if the number of matching rows is small; higher as the number of rows increases |
INDEX_MERGE |
Green |
Index Merge |
Medium -- look for a better index selection in the query to improve performance |
UNIQUE_SUBQUERY |
Orange |
Unique Key Lookup into table of subquery |
Low -- Used for efficient Subquery processing |
INDEX_SUBQUERY |
Orange |
Non-Unique Key Lookup into table of subquery |
Low -- Used for efficient Subquery processing |
RANGE |
Orange |
Index Range Scan |
Medium -- partial index scan |
INDEX |
Red |
Full Index Scan |
High -- especially for large indexes |
ALL |
Red |
Full Table Scan |
Very High − very costly for large tables, but less of an impact for small ones. No usable indexes were found for the table, which forces the optimizer to search every row. This could also mean that the search range is so broad that the index would be useless. |
UNKNOWN |
Black |
unknown |
Note: This is the default, in case a match cannot be determined |
Conclusión
En este artículo, aprendimos cómo obtener estadísticas de consultas en MySQL Workbench y cuáles son sus diferentes características al mismo tiempo.