Consejo: dbeaver ejecuta una consulta mysql y de repente necesita agregar un nombre de usuario y el nombre de la tabla debe estar en mayúsculas. ¿Cómo restaurarlo?

Explica la sintaxis de MySQL

Como sigue

La información contenida en el plan de ejecución

ID Descripción

Indica la ejecución de la instrucción SELECT En orden, cuando los ID son iguales, el orden de ejecución es de arriba a abajo. Si es una subconsulta, el número de secuencia del ID se incrementará. Cuanto mayor sea el ID, mayor será la prioridad y la prioridad a ejecutar.

SELECT_TYPE Descripción

SIMPLE: Consulta simple, es decir, consulta que no contiene subconsultas ni operaciones UNION.

PRIMARIA: La consulta más externa, es decir, si la consulta contiene alguna subconsulta, la consulta más externa se marca como PRIMARIA.

SUBQUERY: asignada a una subconsulta, es decir, la subconsulta se incluye en la lista SELECT o WHERE.

SUBCONSULTA DEPENDIENTE: Subconsulta que se basa en resultados externos.

DERIVADA: subconsulta, es decir, la subconsulta que aparece en la cláusula FROM.

UNION: Unión, si aparece el segundo SELECT después de UNION, se marca como UNION. Si una UNION está contenida en una subconsulta de la cláusula FROM, el SELECT externo se marcará DERIVED.

RESULTADO DE UNION: El resultado de usar la unión, es decir, el conjunto de resultados generado por UNION.

Descripción de TABLA

Se refiere a la tabla actualmente ejecutada, es decir, el nombre de la tabla donde se encuentran las filas de datos de salida. El conjunto de resultados producido por la unión de consultas con ID M y N, o los resultados producidos por la consulta con ID N.

TIPO Descripción

TODO: escaneo completo de la tabla de datos, recorre toda la tabla para encontrar filas coincidentes, la peor eficiencia.

INDEX: escaneo completo de la tabla de índice La diferencia entre INDEX y ALL es que el tipo de índice solo atraviesa el árbol de índice.

RANGE: realiza una búsqueda de rango en la columna de índice, recupera solo filas en un rango determinado, usa un índice para seleccionar filas, común en BETWEEN, gt;,

INDEX_MERGE: fusionar índice, búsqueda utilizando múltiples índices de una sola columna.

REF: utilice un escaneo de índice no único o un escaneo de prefijo de un índice único para devolver filas de datos que coincidan con un único valor. Sin embargo, puede encontrar varias filas que cumplan las condiciones, por lo que deberían pertenecer. a la búsqueda y escanear una mezcla de.

EQ_REF: escaneo de índice único, para cada clave de índice, solo un dato en la tabla coincide con él. Comúnmente visto en escaneos de clave primaria o índice único.

CONST: Se utiliza cuando solo hay una fila coincidente en la tabla. Debido a que solo hay una fila, el resto del optimizador puede considerar constantes los valores de las columnas en esta fila, como consultas sobre claves primarias o índices únicos, el método de unión más eficiente.

SYSTEM: SYSTEM es un caso especial del tipo CONST, es decir, cuando la tabla consultada tiene una sola fila (igual a la tabla del sistema).

NULL: MySQL descompone la declaración durante el proceso de optimización y ni siquiera necesita acceder a la tabla o al índice durante la ejecución. Por ejemplo, la selección del valor mínimo de una columna de índice se puede completar a través de un índice separado. buscar.

La clasificación de rendimiento es la siguiente:

En términos generales, es necesario asegurarse de que la consulta alcance al menos el nivel RANGE, preferiblemente REF.

POSSIBLE_KEYS Descripción

Los índices que se pueden usar indican qué índices MySQL puede usar para optimizar la consulta. Si hay un índice en el campo involucrado en la consulta, el índice será. enumerados, pero no necesariamente utilizados por las consultas.

Descripción de KEY

La columna KEY muestra el índice que MySQL realmente decide usar. Si no hay un índice disponible, muestra NULL. Si la consulta utiliza un índice de cobertura, el índice solo aparece en la columna Clave.

Para forzar a MySQL a usar o ignorar el índice en la columna POSSIBLE_KEYS, use FORCE INDEX, USE INDEX o IGNORE INDEX en la consulta.

Descripción de KEY_LEN

Indica el número de bytes utilizados en el índice. La longitud del índice utilizado en la consulta se puede calcular a través de esta columna. El valor mostrado por KEY_LEN es el máximo. Longitud posible del campo de índice En teoría, cuanto más corta sea la longitud, mejor, pero esta no es la longitud real utilizada, es decir, KEY_LEN se calcula en función de la definición de la tabla, no se recupera de la tabla.

Descripción de REF

Indica las condiciones de coincidencia de conexión de la tabla anterior, es decir, qué columnas o constantes se utilizan para encontrar el valor en la columna de índice.

Descripción de FILAS

Indica que MySQL estima el número de filas que deben leerse para encontrar los datos requeridos en función de las estadísticas de la tabla y la selección del índice. El tamaño del valor de FILAS es un. resultado de muestreo estadístico, no del todo exacto.

Descripción adicional

La información adicional que no es adecuada para mostrar en otras columnas pero que es muy importante tiene las siguientes situaciones:

uso de índice: uso de índice de cobertura ( Covering Index) consulta para evitar el acceso a la tabla.

usando dónde: MySQL filtrará las filas después de que el motor de almacenamiento las recupere. Muchas condiciones WHERE involucran columnas en el índice, que el motor de almacenamiento puede verificar cuando se lee del índice, por lo que no todas las consultas con una cláusula WHERE mostrarán "usando dónde".

uso temporal: MySQL necesita usar tablas temporales para almacenar conjuntos de resultados, que se usan comúnmente en clasificación, subconsultas y agrupaciones de consultas.

uso de clasificación de archivos: la operación de clasificación que no se puede completar usando índices en MySQL se llama clasificación de archivos. MySQL tiene dos métodos de clasificación de archivos, los cuales se pueden realizar en la memoria o en el disco, y generalmente aparecen en consultas ORDER BY o GROUP BY.

no existe: utilice No existe para optimizar las consultas.

Seleccionar tablas optimizadas: Obtenga datos directamente a través del índice sin acceder a la tabla.

Uso del búfer de unión: indica que no se utiliza ningún índice al obtener la condición de unión y se requiere un búfer de unión para almacenar los resultados intermedios. Si aparece este valor, cabe señalar que dependiendo de las condiciones específicas de la consulta, puede ser necesario agregar índices para mejorar el rendimiento.

Las razones que causan la falla del índice y el escaneo completo de la tabla son:

La columna de índice realiza cálculos, funciones, conversión de tipos y otras operaciones.

Utilice columnas de índice no iguales, como != o lt;gt;.

Utilice IS NULL y IS NOT NULL para las columnas de índice.

La consulta difusa LIKE comienza con un carácter comodín, como ab.

Las columnas de índice utilizan OR para conectar condiciones.

Las columnas de índice utilizan IN y NOT IN.

Conversión implícita, error de tipo, por ejemplo, el tipo de campo NUM es varchar, la condición WHERE usa número y NUM = 1.

La cláusula WHERE y ORDER BY usan el mismo índice, y el orden de ORDER BY es el mismo que el orden del índice, y los campos de ORDER BY están en orden ascendente o descendente; de ​​lo contrario, el índice no utilizarse.

El índice compuesto no cumple con el principio de prefijo izquierdo óptimo o tiene un punto de interrupción.

Si MYSQL evalúa que usar un índice es más lento que un escaneo completo de la tabla, entonces el índice no se usa.

Técnicas de optimización de fallas de índice

Puedes leer: Sun Gong Yizhi, método de optimización de sintaxis SQL y explicación detallada de ejemplos

Secuencia de ejecución de SQL

Legible: Análisis del orden de ejecución de declaraciones de consulta SQL