mysql consultas lentas y optimización

¿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.

Publicado 18 artículos originales · ganado elogios 4 · Vistas 147

Supongo que te gusta

Origin blog.csdn.net/weixin_42081445/article/details/104956078
Recomendado
Clasificación