el rendimiento de MySQL artefacto análisis Explicar, que no lo saben? A continuación, usted está fuera de

EXPLICAR muestra cómo utiliza MySQL los índices para hacer frente a la instrucción SELECT y la tabla de enlaces. Puede ayudar a elegir un mejor índice y escribir consultas más optimizadas.

lectura recomendada

Explique

plan de ejecución de la consulta

  • Uso explican la palabra clave, se puede simular la ejecución de la sentencia SQL optimizador
  • Así que sabemos cómo tratar con la declaración SQL MYSQL
  • Puede analizar los cuellos de botella de rendimiento de consulta o estructura de la tabla por Explica

efecto

  • Compruebe el orden de lectura de la tabla
  • Los datos leídos tipo de operación de la operación
  • Ver qué índice se puede utilizar
  • Ver qué índice se utiliza realmente
  • Verificar las referencias entre tablas
  • Compruebe el número de filas por tabla se ejecuta optimizador

uso

  • Antes de agregar EXPLAIN SELECT, tales como:
    Aquí Insertar imagen Descripción

Análisis contiene información

carné de identidad
  • identificador SELECT. Este es el número de serie una consulta de selección.
EXPLAIN SELECT * FROM department d, 
(SELECT * FROM employee GROUP BY dep_id) t 
WHERE d.id = t.dep_id;

Aquí Insertar imagen Descripción

  • orden de la tabla de la ejecución: employee-> d-><derived2>
  • Resumen:id相同,顺序走;不同,看谁大,大的先执行 .
seleccione tipo
  • tipo SELECT, que puede ser cualquiera de los siguientes:
    • SIMPLE: Consulta de selección simple, la consulta no contiene subconsultas o unión
    • PRIMARY: Si la consulta contiene ningún sub-consultas complejas, la consulta externa fueron marcados como primaria.
      • Aquí Insertar imagen Descripción
    • UNION: Si el segundo seleccione ocurrir después de la unión, se marcaron unión, la unión si la consulta de cláusula incluido en el sub, la capa exterior será marcado como seleccione deriver
    • DEPENDENT UNION: UNION en la segunda instrucción SELECT o la parte posterior, en función de las afueras de la investigación
    • UNION RESULT: Obtención de resultados SELECT de la tabla de la unión, fusión de dos conjuntos de resultados en la final
      • Aquí Insertar imagen Descripción
    • SUBQUERY: Contiene sub-consultas en la selección o en que parte.
      • Aquí Insertar imagen Descripción
    • DEPENDENT SUBQUERY: El primer sub-consulta de selección, en función de consulta fuera
    • DERIVED: De subconsulta incluido en la lista están marcados como derivado (derivado), lo que sitúa el resultado en una tabla temporal
      • Aquí Insertar imagen Descripción
mesa
  • Referenciada salida de fila de la tabla (datos de la pantalla que está relacionada con la línea de mesas)
particiones
  • tabla de particiones (si la consulta se basa en la tabla de particiones, se mostrará el acceso de consulta de partición)
tipo
  • system: TABLA sólo una fila (= tabla de sistema). Este es un caso especial de la const tipo de unión.
  • const: Tabla hasta una línea coincidente, índice principal o único const para la comparación. Acceso directo a una clave principal o un índice único, que será leído en el inicio de la consulta. Debido a que sólo una fila, los valores de columna de esta fila pueden considerarse para optimizar la porción restante es constante. const mesa rápidamente debido a que se leen sólo una vez!
  • eq_ref: Recorrido de índice único. Para cada clave de índice, sólo un registro en el partido de la tabla. Común en la clave principal o índice único de exploración, para cada combinación de las filas de la parte delantera de la tabla, lee una línea de la tabla. Este es probablemente el mejor tipo de conexión, excepto el tipo const.
  • ref: Recorrido de índice no único. Para cada combinación de filas de la tabla anterior, todas las filas que coinciden con los valores de índice leen de esta tabla.
  • ref_or_null: El tipo de conexión como referencia, pero agregó que la línea de MySQL puede buscar específicamente contener valores nulos.
  • index_merge: El índice de indicación de tipo de acoplamiento método de optimización combinada.
  • unique_subqueryRef Este tipo sustituye a la siguiente forma en la sub consulta: value IN (SELECT primary_key FROM single_table WHERE some_expr) unique_subqueryuna función de índice de búsqueda, puede reemplazar completamente sub-consultas más eficiente.
  • index_subquery: Este tipo es similar a la unique_subquery acoplamiento. EN subconsulta puede ser reemplazado, pero sólo para la subconsulta en la forma de un índice no único:value IN (SELECT key_column FROM single_table WHERE some_expr)
  • range: Sólo recupera una fila de un rango dado, utilizando un índice para seleccionar las filas.
  • index: TODO el acoplamiento con el mismo tipo, excepto que se escanea sólo el árbol de índice. Esto es generalmente más rápido que todos, debido a que el archivo de índice es generalmente más pequeño que el archivo de datos.
  • ALL: Para cada combinación de filas de la tabla anterior, una mesa de exploración completa.

Requisitos: En general, al menos para asegurar que el nivel de rango consulta, preferentemente a ref

possible_keys
  • La aplicación de este índice se puede mostrar en tablas, uno o más; se refiere al campo si existe el índice de consulta, aparecerá en la lista del índice, pero no necesariamente realmente utilizada por la consulta
llave
  • Índice utiliza realmente, si es NULL, entonces no utilizan índices; si la consulta utilizando un índice que cubre, el índice sólo aparece en la lista de claves; possible_keys与key关系 :理论应该用到哪些索引,实际用到了哪些索引;los ámbitos cubiertos por los campos de índice y consulta creada sólo en forma, que llamamos cubriendo índice.
key_len
  • Indica el número de bytes utilizados en el índice, el índice puede ser utilizado en la longitud de la consulta se calcula por la columna. Si la clave es NULL, la longitud es NULL.
árbitro
  • Muestra qué columnas o constantes se seleccionan junto con una clave de una tabla utilizando la fila. Si el índice se introduce a, en el extremo que varias referencias al Índice
filas
  • Mostrar el número de filas de MySQL cree que debe examinar la ejecución de la consulta. De datos entre una pluralidad de líneas pueden estimarse multiplicando el número de filas para ser procesado. De acuerdo con la tabla de estadísticas y seleccione el caso índice, una estimación aproximada del número de registro requerido de líneas para ser leído de encontrar, el número de filas por tabla durante mucho tiempo ha sido optimizado consultas también.
filtrado
  • Muestra el porcentaje del valor estimado de la cantidad de filas filtradas a través de condiciones. La relación del número de registros para satisfacer la consulta, tenga en cuenta el porcentaje, no un número específico de registros; mejor es el valor, el valor de la columna filtrada depende estadísticas no son muy precisos.
Extra
  • Esta columna contiene la consulta MySQL para resolver los detalles
    • Distinct: MySQL encontró después de una línea coincidente para la fila actual parada combinación búsqueda de más filas.
    • Not exists: MySQL LEFT JOIN capaz de consulta de optimización, después de un partido se encontró LEFT JOIN línea estándar, no hay más filas de la tabla de verificación de las combinaciones anteriores de filas.
    • range checked for each record (index map: #): MySQL encuentra ningún índice buena se puede utilizar, pero si se conoce el valor encontrado desde la parte frontal de la columna de la mesa, la parte de índice puede ser utilizado.
    • Using filesort: MySQL requiere un pase adicional para averiguar cómo recuperar los registros ordenadamante.
    • Using index: A partir de la utilización de sólo información en el árbol de índice sin tener que buscar más lee la línea actual para recuperar la información de la columna en la tabla.
    • Using temporary: Con el fin de resolver la consulta, MySQL necesita para crear una tabla temporal para contener el resultado.
    • Using where: Cláusula WHERE restringe una fila que coincide con la siguiente tabla o enviado a un cliente.
    • Using sort_union(...), Using union(...), Using intersect(...): Estas funciones ilustran cómo index_merge afiliado a SCAN tipo de índice de combinación.
    • Using index for group-by: El uso de índice de una manera similar a la lista de acceso, utilizando el índice de grupo por MySQL expresado encontró un índice que puede ser utilizado para consultar todas las columnas GROUP BY o DISTINCT a la consulta, en lugar de búsqueda adicional en el disco duro para acceder a la tabla real.

Cuanto más se sabe, más usted no sabe.
Forma correcta sin necesidad de cirugía, los pacientes aún pueden buscar, no hay ninguna manera de la cirugía, poniendo fin a la cirugía.
Si usted tiene otras preguntas, mensaje de bienvenida, podemos discutir, aprender juntos y progresar juntos

Publicados 204 artículos originales · ganado elogios 138 · Vistas a 20000 +

Supongo que te gusta

Origin blog.csdn.net/qq_40722827/article/details/105239545
Recomendado
Clasificación