Base de datos MySQL-índice (4)-análisis de rendimiento SQL-detalles del perfil, explicación (comando de vista de perfil, explica el significado de cada campo en el plan de ejecución)

Tabla de contenido

Análisis de rendimiento SQL

detalles del perfil

Ver instrucciones

explicar

gramática

Explicar el significado de cada campo en el plan de ejecución.


Análisis de rendimiento de SQL (Parte 2)

detalles del perfil

mostrar perfiles puede ayudarnos a comprender dónde se gasta el tiempo al optimizar SQL.

A través del parámetro have_profiling, puede ver si MySQL actual admite operaciones de perfil:

SELECT @@have_profiling;

Como puede ver, MySQL actualmente admite operaciones de perfil, pero el interruptor está desactivado.

La creación de perfiles se puede activar a nivel de sesión/global a través de la declaración set: 

SET profiling = 1;

Una vez activado, MySQL registrará las declaraciones SQL que ejecutemos y registrará el tiempo de ejecución.

Ver instrucciones

-- 查看每一条SQL的耗时基本情况

show profiles;

-- 查看指定query_id的SQL语句各个阶段的耗时情况

show profile for query query_id;

-- 查看指定query_id的SQL语句CPU的使用情况

show profile cpu for query query_id;

explicar

El comando EXPLAIN o DESC obtiene información sobre cómo MySQL ejecuta la instrucción SELECT, incluido cómo se conectan las tablas y el orden en que se conectan durante la ejecución de la instrucción SELECT.

gramática

-- 直接在select语句之前加上关键字 explain / desc

EXPLAIN SELECT 字段列表 FROM 表名 WHERE 条件 ;

Explicar el significado de cada campo en el plan de ejecución.

  • identificación

El número de secuencia de la consulta de selección, que indica el orden en que se ejecutan las cláusulas de selección u operaciones de tabla en la consulta.

(Con el mismo ID, el orden de ejecución es de arriba a abajo; con diferentes ID, cuanto mayor sea el valor, antes se ejecutará) .

  • seleccione tipo

Indica el tipo de SELECT. Los valores comunes incluyen SIMPLE (tabla simple, es decir, no se utiliza ninguna conexión de tabla o subconsulta), PRIMARY (consulta principal, es decir, la consulta externa), UNION (la segunda declaración de consulta o posterior en UNION) ), SUBQUERY (la subconsulta se incluye después de SELECT/WHERE), etc.

  • tipo

Indica el tipo de conexión. Los tipos de conexión de buen a mal rendimiento son NULL, system, const, eq_ref, ref, range, index y todos.

1. sistema : la tabla tiene una sola fila (= tabla del sistema). Este es un caso especial del tipo de unión constante.
2. const : la tabla tiene como máximo una fila coincidente, que se leerá al comienzo de la consulta. Debido a que solo hay una fila, el resto del optimizador puede tratar los valores de las columnas en esta fila como constantes.
const se utiliza al comparar todas las partes de una CLAVE PRIMARIA o índice ÚNICO con un valor constante.
3. eq_ref : para cada combinación de filas de la tabla anterior, lea una fila de la tabla. Este es probablemente el mejor tipo de unión, además de los tipos constantes. Se utiliza cuando todas las partes de un índice se utilizan en la unión y el índice es CLAVE ÚNICA o PRIMARIA. eq_ref se puede usar en columnas indexadas comparadas usando el operador =. El valor de comparación puede ser una constante o una expresión que utilice una columna de una tabla que se leyó antes de esta tabla.
4. ref : para cada combinación de filas de la tabla anterior, todas las filas con valores de índice coincidentes se leerán de esta tabla. Use ref si la combinación usa solo el prefijo más a la izquierda de la clave, o si la clave no es ÚNICA o PRIMARIA (en otras palabras, si la combinación no puede seleccionar una sola fila según la clave). Este tipo de combinación es bueno si utiliza claves que solo coinciden con una pequeña cantidad de filas. ref se puede usar en columnas indexadas usando los operadores = o <=>.
5. rango : recupera solo filas en un rango determinado, usando un índice para seleccionar filas. La columna clave muestra qué índice se utilizó. key_len contiene el elemento clave más largo del índice utilizado. La columna de referencia es NULL en este tipo. Cuando use los operadores =, <>, >, >=, <, <=, IS NULL, <=>, BETWEEN o IN para comparar columnas clave con constantes, puede usar el rango 6
, índice: Este tipo de unión es el mismo que TODO, excepto que solo se escanea el árbol de índice. Esto suele ser más rápido que ALL porque los archivos de índice suelen ser más pequeños que los archivos de datos.
7. todos : realice un escaneo completo de la tabla para cada combinación de filas de la tabla anterior. Por lo general, esto no es bueno si la tabla es la primera que no está marcada como constante y, en ese caso, suele ser malo. Por lo general, es posible agregar más índices sin usar TODOS para que las filas se puedan recuperar en función de valores constantes o valores de columnas en la tabla anterior.

8. NULL : cuando no se utiliza ninguna tabla en la consulta, el tipo de conexión es NULL.
————————————————

(El contenido reproducido ha sido modificado)

Declaración de derechos de autor: este artículo es un artículo original del blogger de CSDN "FSW ..." y sigue el acuerdo de derechos de autor CC 4.0 BY-SA. Adjunte el enlace de la fuente original y esta declaración al reimprimir.
Enlace original: https://blog.csdn.net/FSWZYC/article/details/126655438

  •  clave_posible

 Muestra uno o más índices que se pueden aplicar a esta tabla.

  • llave

El índice real utilizado. Si es NULL, no se utiliza ningún índice.

  • clave_len

Indica el número de bytes utilizados en el índice. Este valor es la longitud máxima posible del campo de índice, no la longitud real utilizada. Sin perder precisión, cuanto más corta sea la longitud, mejor.

  • filas

El número de filas que MySQL considera necesarias para ejecutar la consulta en la tabla del motor innodb es una estimación y puede no siempre ser exacta.

  • filtrado

Indica el número de filas devueltas como porcentaje del número de filas a leer. Cuanto mayor sea el valor de filtrado, mejor.

  • Extra

Esta columna contiene detalles de cómo MySQL resolvió la consulta.


FIN


Aprenda de: Programador Dark Horse - Curso de base de datos MySQL

Supongo que te gusta

Origin blog.csdn.net/li13437542099/article/details/133102189
Recomendado
Clasificación