Índice Estatuto
parte obligatoria
[vigor] campos con las características operativas únicas, incluso cuando una combinación de una pluralidad de campos, un índice único debe ser completado.
Descripción : No creo que índice único afecta a la insert
velocidad, la pérdida de velocidad es insignificante, pero para mejorar la velocidad de búsqueda es obvia y, además,
incluso en la capa de aplicación para hacer un check control muy completo, siempre y cuando no hay un índice único, de acuerdo con la ley de Murphy, lo inevitable generación de datos sucios.
[Obligatorio] más de tres mesas prohibidas join
. Requeridos join
campos, tipos de datos deben ser absolutamente coherentes; multi-tabla asociada a la consulta, asegúrese de que los campos están asociados con la necesidad de tener un índice.
Descripción : Incluso doble mesa join
también prestar atención a la tabla de índice de SQL
rendimiento.
[Obligatorio] en varchar
la indexación en el campo, debe especificar la longitud del índice, sin necesidad de indexar todo el campo, se puede determinar la longitud de un índice basado en el texto real de la discriminación.
Descripción : la longitud del índice de discriminación es una contradicción, el tipo general de longitud de datos de cadena de 20
índice, la discriminación se hará hasta
90%
lo anterior, que se puede utilizar count(distinct left(列名, 索引长度))/count(*)
para distinguir entre el grado determinado.
[Obligatorio] búsqueda página se dejó vaga o difusa no enteros, si es necesario, por favor tome el motor de búsqueda para resolver.
Descripción : Archivo de índice tiene B-Tree
el mayor número de características que coinciden en el prefijo izquierda, si no se determina el valor de la izquierda, no se puede utilizar este índice.
sección recomendada
[Recomendado] Si hay order by
una escena, tenga en cuenta el orden de uso del índice. order by
El último campo es parte del índice compuesto, y el índice de una combinación de orden final para evitar file_sort
la situación, el rendimiento de las consultas impacto.
Ejemplos positivos : where a=? and b=? order by c
; Índice: a_b_c
contraejemplo : índice de consulta gama si la hay, entonces el orden de índice no se puede utilizar, por ejemplo: WHERE a>10 ORDER BY b
; el índice a_b
no se puede clasificar.
[Recomendado] usar un índice para cubrir la consulta, para evitar volver a la mesa.
Descripción : Si necesita un libro para conocer el primer 11
título del capítulo es lo que va a activar 11
esa página capítulo correspondiente a la misma? Directorio mirada similar, este directorio es jugar el papel de cubrir índices.
Ejemplos positivos : el tipo de puntos pueden ser indexados índice de clave principal, el único índice, el índice general de tres, y un índice de cobertura es sólo un tipo de un efecto de la consulta, con explain
el resultado, extra
aparecerá la columna: using index
.
[Recomendado] usando el retardo asociado u optimización de sub-consulta sobre escena más paginación.
Descripción : MySQL
No se salte offset
la línea, pero tomar offset+N
la línea, y luego regresar antes de abandonar offset
la línea, retorno de N
línea, cuando offset
es particularmente grande, la eficiencia es muy baja, o controlar el número total de páginas devueltas o la página por encima de un cierto umbral se número SQL
reescrito.
Ejemplos positivos : primero tiene que llegar a localizar rápidamente el id
segmento y luego asociado: SELECT a.* FROM
Tabla1 a, (select id from 表 1 where 条件 LIMIT 100000,20 ) b where a.id=b.id
[Recomendado] SQL
objetivo la optimización del rendimiento: llegar al menos a range
nivel de exigencia es ref
el nivel, si puede ser consts
la mejor.
Descripción :
consts
A lo sumo, una sola fila de la tabla correspondiente (clave principal o índice único), los datos pueden ser leídos en la etapa de optimización.ref
Se refiere a la utilización de un índice común(normal index)
.range
De la búsqueda por rango de índice.
Contraejemplo : explain
la tabla de resultados type=index
, el índice de archivos físicos análisis completo, muy lento, este index
nivel es relativamente range
bajo, y un escaneo completo de tabla es trivial.
[Recomendado] creación de índice compuesto del tiempo, la más alta distinción de la extrema izquierda.
Ejemplo positivo : si where a=? and b=?
, si a
casi cerca de un valor único para la columna, a continuación, sólo tiene que crear un único idx_a
índice puede ser.
Descripción : Cuando un signo no igual signo igual y se mezcla, en el momento de la construcción del índice, la columna condición previa del signo igual. Tales como: where c>? and d=?
incluso si c
un mayor grado de diferenciación también se debe poner d
a la vanguardia en el índice, ese índice idx_d_c
.
[Recomendado] prevenir conversión implícita causada debido a los diferentes tipos de campo, lo que resulta en un fracaso del índice.
sección de referencia
[Referencia] al crear un índice de evitar malentendidos extrema sigue:
- Ninglanwuque. Creo que una consulta necesita para construir un índice.
- Ningquewulan. Creo que el índice se consumen espacio, una grave desaceleración de la velocidad del nuevo registro y actualizar la línea.
- La única boicot índice. La única piensan que todas las necesidades del negocio que se abordarán en la capa de aplicación a través de la "comprobar el tapón después de la primera" enfoque.