contorno
En este gran datos, el flujo de las veces, nuestro sitio web no es sólo el flujo de tráfico, la cantidad de datos será muy grande. Necesitamos saber los datos exactos de la enorme cantidad de datos, esta base de datos relativamente gran presión sobre nosotros. Y cuando no tenemos en cuenta la operación de la sub-biblioteca subtabla, una optimización de SQL es una buena solución, aquí explain
sentencias SQL análisis de palabras clave y utilizan índices para optimizar consultas.
explain
palabra clave
explain
Utilice el formato
EXPLAIN SELECT
*
FROM
SCORE
WHERE
CNO = '3-105'
AND DEGREE > (
SELECT
DEGREE
FROM
SCORE
WHERE
SNO = 109
)
resultados de la consulta
carné de identidad | seleccione tipo | mesa | tipo | possible_keys | llave | key_len | árbitro | filas | extra |
---|---|---|---|---|---|---|---|---|---|
1 | PRIMARIO | PUNTUACIÓN | TODOS | nulo | nulo | nulo | nulo | 12 | utilizando, cuando |
2 | subconsulta | PUNTUACIÓN | TODOS | nulo | nulo | nulo | nulo | 12 | utilizando, cuando |
explain
Formar cada análisis de atributos
id
: Seleccione el número de secuencia de la consulta, contiene un conjunto de números que indica el orden de las cláusulas o seleccionar una tabla de operación de ejecución de la consulta
- ID es el mismo, el orden de arriba a abajo
- ID no es lo mismo, de la identificación si un número de sub-consulta se incrementa, mayor de id el valor mayor es la prioridad, el primero en ser ejecutado ,, valor id mayor en todos los grupos de mayor prioridad
select_type
: Ordenar, diferencia principal es consulta normal, la consulta de unión, sub consulta y otras consultas complejas
simple
Una simple consulta, no contiene una subconsultaprimary
: Contiene sub-consultas, consultas para el exteriorsubquery
: subconsultaderived
: Mesa Derivado, tabla virtualunion
: Palabra clave aparece uniónunion select
: resultados de la consulta de la Unión
table
: Nombre de la tabla de consultatype
: La información contenida en el plan de ejecución, mostrando qué tipo de usos de la consulta
type类型从最好到最差
system > const > eq_ref > ref > range >index > all
system
: La tabla es sólo un registro (igual a las tablas del sistema), que esconst
una especie de caso especial, por lo general no se produce, esto puede ser ignorada.const
: Representa el tiempo por un índice de encontrar,const
para la comparaciónprimary key
, ounion
el índice, ya que sólo una fila de datos coinciden, por lo pronto, ya que se colocará en la clave principal.eq_ref
: Recorrido de índice único, para cada clave de índice, sólo un registro en el partido de la tabla. clave primaria común o recorrido de índice únicoref
: Vuelve índice no único escaneo todas las filas que coincidan con las condiciones. En esencia es un tipo de índice, que devuelve todos a juego un individuo digno de toda la línea, sin embargo, puede tener que encontrar la fila más calificado, por lo que debería pertenecer a la búsqueda y la exploración para obtener un cuerpo mixto.range
: Recuperar sólo un rango determinado de la línea, utilizando el índice para seleccionar las filas. espectáculos de columna de clave, que el índice de utilización, generalmente aparecen en su estado en el que entre, <,>, en otras investigaciones, una exploración de dicho rango es mejor que un escaneo completo de tabla, debido a un cierto punto en el índice sólo tiene que empezar, y un cierto punto final, no una mesa de exploración completa.index
: Índice de exploración completa,index
yall
la diferencia esindex
el tipo de atravesar sólo el árbol de índice. Esta relación es generalmenteall
más rápido, debido a que el archivo de índice es generalmente más pequeño que el archivo de datos (es decir embargoall
yindex
son escaneo completo de tabla, peroindex
se explora desde el archivo de índiceall
es leído por el disco duro)all
: Escaneo completo de tabla
possible_keys
: Muestra el índice pueden aplicar a la consulta, uno o más. Búsquedas similares a la existencia de los campos de índice, serán listados en el índice, pero no necesariamente utilizados en la consulta.key
: Consulta real del índice de usar. Si se tratanull
, entonces no se utiliza el índice, si se utiliza para cubrir el índice, el índice sólo aparece enkey
la lista.key_len
: Muestra el número de bytes utilizados en el índice, la columna se pueden calcular mediante el uso de la consulta a la longitud de índice. Sin pérdida de precisión, una longitud lo más corta posible.key_len
El valor de la longitud máxima se muestra en el campo de índice, no la longitud real, es decir,key_len
se calcula sobre la definición de la tabla base, no se han recuperado por la tabla.ref
: Las columnas muestran los cuales se utilizan índices, si es posible, es una constante. Las columnas o constantes se utilizan para encontrar el valor del índice en la columna.rows
Según las estadísticas del número de filas y caso índice de selección de tabla, se encuentra una estimación aproximada del registro que deberá leer:extra
: No es adecuado para la exhibición en las otras columnas, pero la información importante
using filesort
: MySQL se describirá utilizando un índice de pedido de datos externo, en lugar de leer de acuerdo con el índice de la tabla. MySQL no puede usar índices para completar una operación de ordenación llamada文件排序
. Si esto sucede, la consulta será muy lentousing temporary
: Menciones tablas temporales para mantener los resultados intermedios, MySQL en los resultados de la consulta se clasifican usando una tabla temporal. Común en la clasificaciónorder by
ygroup by
. Esto ocurre investigación será muy lento.using index
: Indica que la operación de selección correspondiente usando un índice de cobertura (que abarca índice), impedir el acceso a las líneas de datos, una buena eficiencia! Si al mismo tiempousing where
, muestra que el índice se utiliza para realizar la búsqueda por índice; si no se producen al mismo tiempousing where
, lo que indica que el índice utilizado para leer para encontrar la acción no ejecutivo.using where
: Usowhere
palabra clave de búsquedaimpossible where
: El valor total de la cláusula falso, no se puede utilizar para obtener cualquier tupla
Índice de optimización caso
- mesa de indexación única, consulta campos no aparecen rango de índice de lo contrario la situación va a fallar
- Dos mesas de consulta de combinación de indexación, el índice general, construida en el cuadro, la conexión a la izquierda, el establecimiento de la derecha, las conexiones adecuadas, basadas en la izquierda.
caso índice fallo (debe evitarse)
- partido completo el valor de mis favoritos (consulta en plena conformidad con secuencial indizado)
- Mejor regla izquierda-prefijo: Si un índice de varias columnas, el prefijo de la izquierda más para cumplir con la ley. Se refiere a una consulta desde el índice de la columna más a la izquierda del principio y no omitir la columna de índice (categoría trenes, locomotoras)
- No hace nada (función de cálculo () de conversión de tipo automático o manual) en todas las columnas, el índice conducirá al fracaso, lo que resulta en un escaneo completo de tabla
- motor de almacenamiento no puede utilizar el índice en la columna de la derecha de las condiciones de alcance
- Trate de usar un índice de cobertura (un índice sólo las consultas de Access), la reducción de selección *
- no es igual a la utilización de no se puede utilizar (<>! = O) cuando el índice resultante en un escaneo completo de tabla
- Es nulo o no nulo no puede utilizar el índice
- comienza con un comodín como ( '% ABCD'), MySQL recorrido de tabla de índice fallará se perfecciona
- cuerda suelta sin comillas índice fallará
- O menos, con sus conexiones pueden causar un fallo del índice
especificación de Alibaba
- Recomendado]: SQL objetivo la optimización del rendimiento: para llegar al menos
rang
requisito de nivel esref
el nivel, si puede serconsts
la mejor.
explicación:consts
Mesa única sólo puede tener una fila coincidente (clave principal o índice único), los datos se pueden leer en la fase de optimización.
ref
Se refiere a la utilización de un índice normal (índice normal)
rang
de la búsqueda de intervalo de índice
contraejemplo: Los resultados explican la tabla, escriba = índice, el índice de los archivos físicos de análisis completo, la velocidad es muy lenta, el nivel del índice es también relativamente baja gama, y un escaneo completo de tabla es trivial