¿Qué es la consulta lenta?
definición de la consulta lenta y papel
registro de consultas lentas, por definición, registro de consultas lentas, se refiere a MySQL grabar todas las sentencias SQL ejecutadas más de ajuste de parámetros de umbral long_query_time tiempo de registro. El registro puede traer buena ayuda para las sentencias SQL optimizadas. Por defecto, el registro de consultas lentas está desactivada, al utilizar la función de registro de consultas lentas, primero debe activar la función de registro de consultas lentas.
Iniciar consultas lentas
arreglo común
inicio slow_query_log tecnología de parada de registro de consultas lentas
slow_query_log_file registro de consultas lentas se especifica la ruta de almacenamiento y archivo (el archivo de datos predeterminado y poner juntos)
long_query_time designado lento tiempo de ejecución de SQL registro de consulta de registro estaba cortando valor (unidad: segundos, 10 segundos por defecto)
log_queries_not_using_indexes no es si los registros son de usar el índice de SQL
almacenamiento del registro local log_output [CUADRO] [ARCHIVO] [ARCHIVO, TABLA]
El registro fue calificada de SQL
pregunta
instrucciones de modificación de datos
SQL se ha deshecho demasiado
consulta lenta análisis de registro
herramienta de análisis de registro de consultas lentas USADOS (mysqldumpslow)
Resumen Además de consulta SQL otro idéntico, y el orden de los resultados de acuerdo con los parámetros especificados en el análisis de salida.
gramática
mysqldumpslow -SR -t 10 lento-mysql.log
Para -S (c, t, l, r, a, al, ar)
c: número total de
t: tiempo total
l: el tiempo de bloqueo
r: la línea de datos total
AT, AL, AR: t, l, r [por ejemplo, se refiere a: a = Tiempo total / número total]
-t frontal superior de días necesarios para especificar la salida como consecuencia
Ejemplo:
mysqldumpslow.pl -st -t 10 D: \ Desktop-2EKGEE5-slow.log
optimizaciones comunes
hardware del servidor
Optimización del servidor MySQL
sí optimización de SQL
la optimización del diseño anti-paradigma
optimización de índices
diseño anti-paradigma
Qué es el diseño anti-paradigma?
Antinormalización es que el paradigma en términos de
El llamado anti-normalización es conseguir el rendimiento y la eficiencia tienen que leer y considerar el paradigma de diseño de base de datos correspondiente fue obtenida en violación de los requisitos
Ha permitido una pequeña cantidad de redundancia, en otras palabras, el anti-normalización es utilizar el espacio para el tiempo
tres Formas
El primer gran paradigma de diseño de base de datos
Todos los campos de una tabla de base de datos que tienen solamente un único atributo
atributo sola columna se compone de tipos de datos básicos
Las mesas están diseñados sencilla tabla de dos dimensiones
El segundo gran paradigma de diseño de base de datos
Se requiere una tabla que tiene única clave natural, es decir, la tabla no puede cumplir con el segundo presencia paradigma de una columna de clave no primaria única dependencia de la parte de la clave primaria
número de pedido y de identificación del producto hay una relación directa
Después de modificar ->
En tercer paradigma de diseño de base de datos
Cada atributo se refiere Feifei porción principal depende de ni transmisión ni se basan en clave natural, es decir, sobre la base de la segunda paradigma transmitida a lo largo de la clave no primaria para la relación de clave primaria
Número y orden de los números asociados con la gestión de clientes
el nombre del cliente y el orden número asociado a la gestión
número de cliente y nombre del cliente asociado
Esta columna borrar el nombre del cliente, colocado sólo en la tabla de clientes
¿Qué son los índices?
MySQL es la definición oficial del índice: el índice (Índice) para obtener ayuda MySQL de manera eficiente la estructura de datos de los datos.
Índice se puede obtener en la naturaleza: el índice es una estructura de datos.
El índice más simple
Índice de poco más compleja
El índice de MySQL
Por encima es una tabla de datos, un total de dos de siete registros, la extrema izquierda es la dirección física del registro de datos
MySQL motor de almacenamiento InnoDB predeterminada sólo el apoyo explícito de árbol B (B + Árbol es técnicamente) Índice
Clasificación Índice
Índice común: es decir, sólo contiene un único índice de la columna, una tabla puede tener múltiples índice separado
El único índice: el valor de columna de índice debe ser único, pero permitir que el valor libre
Índice compuesto: el índice comprende una pluralidad de columnas
Creación de un índice
CREATE [UNIQUE] Índice indexname EN mitabla (ColumnName (longitud));
ALTER TABLE 表 名 ADD [UNIQUE] Índice [indexname] ON (ColumnName (longitud))
vista de índice
SHOW INDEX FROM nombre_tabla
Eliminar índice
DROP INDEX mitabla [indexname] EN
plan de implementación
¿Qué plan de ejecución?
Uso de palabras clave EXPLAIN puede simular SQL optimizador de consultas para llevar a cabo, para que sepan cómo manejar su MySQL es una instrucción SQL. El análisis de los cuellos de botella en su estructura de consulta o tabla
gramática
Explicar declaración + SQL
El papel del plan de ejecución
La lectura de tabla de orden
Los datos leídos tipo de operación de la operación
Los índices que se pueden utilizar
Los índices que se utilizan en realidad
Las referencias entre tablas
Cada tabla de cuántas filas el optimizador de consultas
La información contenida en el Plan de Aplicación
-ID plan de implementación
-select_type plan de implementación
-table plan de implementación
Los datos muestran que esta línea de tablas en las que
de tipo plan de implementación
Tipo Muestra el tipo de acceso es un indicador más importante, el valor resultante de mejor a peor son:
Sistema> const> eq_ref> ref> texto completo> ref_or_null> index_merge> unique_subquery> index_subquery> Gama> Índice> ALL
Debemos recordar
Sistema> const> eq_ref> ref> Gama> Índice> ALL
-key_len plan de implementación
índice key_len indica el número de bytes utilizado
De acuerdo con este valor, se puede determinar el uso del índice, sobre todo cuando el índice compuesto, para determinar si es o no todos los campos de índice se utilizan en la consulta.
CHAR y VARCHAR con la codificación de caracteres está también estrechamente ligado,
latin1 1 byte, 2 bytes GBK, utf8 ocupa 3 bytes. (Los diferentes codificaciones de caracteres ocupan espacio de almacenamiento)
estrategia de optimización de índice
1. Tratar de igualar el valor total de la póliza
EXPLIQUE
* SELECT personal WHERE NOMBRE = 'Julio';
EXPLIQUE
* SELECT personal WHERE NOMBRE = 'Julio' y edad = 25;
EXPLIQUE
* SELECT personal WHERE NOMBRE = 'Julio' y edad = 25 Y pos = 'dev';
2. La mejor estrategia dejó prefijo regla
Si el índice de múltiples columnas, el prefijo de la izquierda más para cumplir con la ley. Se refiere a una consulta desde el extremo izquierdo en la vanguardia del principio y no se salte columna de índice en el índice.
3. La estrategia no hace nada en columnas indizadas
No hacer nada índice de la columna (calculada, la función (conversión de tipo automático o manual)), el índice conducirá al fracaso del escaneo completo de tabla de dirección
EXPLICAR * SELECT FROM personal WHEREleft (nombre, 4) = 'julio';
4. El alcance de las condiciones de política puso definitiva
motor de almacenamiento no puede utilizar el índice en la columna de la derecha de las condiciones de alcance
5. Trate de utilizar la estrategia que cubre el índice
Trate de usar un índice de cobertura (una única consulta de acceso índice (indexados columnas y columnas de consulta consistentes)) para reducir el selecto *
6. estrategia no es igual a su uso incluso
MySQL no es igual en uso (! = o <>) no se puede utilizar cuando el índice conducirá a un escaneo completo de tabla
Política 7.Null / No influyente
Puede afectar a la nota nula / notnull del índice
Las consultas deben tener cuidado 8.Like estrategia
Comodín gustaría comenzar ( '% abc ...') la falta de MySQL tabla de índice operación de exploración se perfecciona
9. La política de tipos de caracteres cotizaciones
insuficiencia índice de cadena sin comillas simples
UNIÓN estrategias de cambio eficiente 10.OR
El valor total de mis partidos favoritos, el prefijo dejado la mayor parte de cumplir;
Tomar la iniciativa en Gran Hermano no puede morir, el hermano del medio no puede ser quebrantada;
Menos índices computacionalmente columna, insuficiencia después de gama completa;
COMO porcentaje de escritura más a la derecha, los índices que cubren no escriben *;
No es nulo o desigual, prestar atención a que el índice de impacto;
comillas VARCHAR no puede perderse, la optimización de SQL tiene una habilidad especial.