MySQL- Tecnología - Optimización del rendimiento de la taquigrafía

Introducción a la optimización

  optimización de bases de datos MySQL es multifacético, el principio es el de reducir los cuellos de botella del sistema y reducir la huella, el aumento de la velocidad de respuesta del sistema. En MySQL, puede SHOW STATUS consultar una serie de parámetros de rendimiento de MySQL comunicado. A medida que el número de consultas conectado, puede realizar la siguiente declaración: 

SHOW STATUS LIKE 'Connections'; 

Si desea consultar el número de consultas lentas, puede ejecutar la siguiente declaración: 

SHOW STATUS LIKE 'Slow_queries'; 

Algunos parámetros de rendimiento comúnmente usados ​​son los siguientes: 

- Conexiones: número de servidor de conexión de MySQL; 

- El tiempo de actividad: servidor MySQL en la línea de tiempo; 

- Slow_queries: el número de consultas lentas; 

- Com_select: el número de operaciones de consulta ( selectse puede cambiar insert,, update, deleterespectivamente inserción consultar, actualizar, borrar el número).

  optimización de bases de datos MySQL puede considerar tres aspectos, a saber, la optimización de consultas, la optimización de la estructura de base de datos, optimizar la base de datos MySQL.

Optimización de consultas

  1. Análisis consulta.
  2. Utilizar índices para acelerar las consultas.
  3. optimización de sub-consulta.

Análisis de consulta

  Mediante el análisis de la consulta, se puede entender la aplicación de la instrucción de consulta. MySQL proporciona EXPLAIN y DESCRIBE para analizar la consulta. 

Ejemplos son los siguientes: 

EXPLAIN SELECT * FROM `user` WHERE username = 'admin'; 

Los resultados se muestran: 


Varios parámetros explican: 

- id: identificador SELECT. Este es el número de serie una consulta de selección. 
- SELECT_TYPE: Indica el tipo de instrucción SELECT. 
- tabla: una tabla que muestra la consulta. 
- Tipo: indica el tipo de conexión de la tabla. ALLRepresentación de un escaneo completo de tabla. Este es el peor resultado. 
- possible_keys: indica qué índices de MySQL podría utilizar para encontrar las filas de la tabla. Si es NULL, lo que indica que hay un índice relevante. 
- clave: indica que la consulta utiliza realmente para el índice. 
- key_len: indica la longitud del campo de índice seleccionado por MySQL bytes. 
- Ref: indicar qué columnas o constantes y los registros de la consulta mediante el índice juntos. 
- filas: MySQL muestra el número de filas de la tabla necesario que se controlen cuando se les pregunta. 
- adicional: Para obtener más información acerca de MySQL en el trato con la representación de la consulta.

Utilizar índices para acelerar las consultas

  MySQL para mejorar el rendimiento de una manera más eficaz es diseñar un índice de la tabla de datos razonable. Índice proporciona una forma eficiente de datos de consulta y acelerar la velocidad de las consultas. instrucciones de consulta de análisis, el tipo de visualización ALL es la representación de un escaneo completo de tabla, sin el uso de un índice. Para username añadir un llamado username_index índice general, vamos a analizar los resultados de consulta como se muestra: 

  un tipo a otro ref, lo que significa que todas las filas coincidentes leídos de una tabla, un índice no es ni tampoco lo es el caso único PRIMARY KEY, o la consulta utilizando el índice de subconjunto columna de la izquierda, es decir, la parte de índice de la columna de la izquierda en combinación.

  Cuando se utiliza un índice Hay varias circunstancias especiales, en estos casos, es posible utilizar el campo con consulta al índice, el índice no tenga efecto, aquí hay varias especial en este caso.

Usar la palabra clave LIKE consulta. 
En la declaración se utiliza la consulta palabra clave LIKE, si la cadena del primer carácter emparejado es "%", el índice no funcionará. Sólo "%" no está en la primera posición, el índice va a funcionar.

Varias columnas consulta al índice. 
MySQL puede crear índices en varios campos. 16 puede incluir un campo de índice. Por índice de varias columnas, sólo la consulta utilizada en estos campos en el primer campo, el índice va a funcionar.

O utilizar la consulta de palabras clave. 
Cuando la consulta sólo consulta de palabras clave OR, OR y dos condiciones antes y después de las columnas son el índice, sólo la consulta utilizando el índice. De lo contrario, la consulta no utilizará el índice.

Las subconsultas de optimización

  Las consultas pueden hacer una gran cantidad de una sola vez, lógicamente, requiere varios pasos para operaciones de SQL completas. Aunque sub-consulta puede consultar muy flexible, pero la eficiencia no es alta. La implementación de sub-consultas, MySQL necesita para crear una tabla temporal para la declaración de resultados de la consulta interna. A continuación, la consulta consulta externa registros de la tabla temporal. Después de la consulta es completa, y luego retirar estas tablas temporales. Por lo tanto, la velocidad de las sub-consultas se verá afectada en algún grado. 
  En MySQL, puede utilizar la conexión (JOIN) consulta en lugar de una subconsulta. Consulta de unión no tiene que crear una tabla temporal, su velocidad es más rápida que la subconsulta.

estructura de base de datos optimizada

  estructura de la base razonable que no sólo permite bases de datos ocupan menos espacio en el disco, y pueden hacer consultas más rápidamente. El diseño de la estructura de base de datos, debe tener en cuenta la redundancia de datos, consulta velocidad y actualizar el tipo de datos del campo es razonable y muchos otros contenidos.

Muchos de los campos en una pluralidad de cuadros Cuadro

Para muchos campos de la tabla, la frecuencia de uso es baja algunos campos, estos campos pueden separarse para formar una nueva mesa. Porque cuando la tabla de datos es grande, debido a la presencia de una baja frecuencia de uso en el campo se vuelve más lento.

Aumento en el centro de la mesa

Para las tablas de consulta de unión requieren frecuentes, puede crear una tabla intermedia para mejorar el rendimiento de consulta. Mediante el establecimiento de centro de la mesa, la inserción de datos exige una investigación conjunta frecuente en el medio de la mesa, y luego la consulta original a una pregunta sobre la articulación media de la tabla, con el fin de mejorar el rendimiento de las consultas.

Aumento de campo redundancia

Diseño tablas de la base deben tratar de seguir la teoría paradigma estatuto, minimizar campo redundante, por lo que el diseño de la base de datos se ve sofisticada y elegante. Sin embargo, la adición razonablemente campo de redundancia puede mejorar la velocidad de consulta.

optimización de la velocidad de inserción registros

Cuando se inserta la grabación, la velocidad de inserción afecta principalmente el índice, el único registro de entrada, insertar un número de registros. Esto puede ser dirigido por separado optimización.

tablas de análisis, listas de control y la optimización de la tabla

  MySQL proporciona tablas de análisis comunicado, listas de control y la optimización de la tabla. La tabla de análisis principal se distribuye análisis de palabras clave; Listado con puntos principalmente por errores; optimización es eliminar la tabla principal para eliminar o espacio de actualización producida por los residuos.

  1. tabla de análisis: Analizar TABLA nombre de la tabla;
  2. Lista de comprobación: Comprobar nombre TABLA tabla;
  3. mesa de optimización: OPTIMIZACIÓN nombre de la tabla TABLA; (única mesa optimización VARCHAR, BLOB o campo de tipo TEXTO)

  Los tres métodos descritos anteriormente, el sistema de base de datos añadirán automáticamente un bloqueo de lectura en la tabla. Durante la tabla de análisis, la tabla sólo puede leer el registro, el registro no se actualiza y se inserta. En la mayoría de los escenarios, sin el uso de la tabla optimizado, y por el hecho de longitud variable de un montón de actualización, no es necesario correr a menudo, una vez a la semana o una vez al mes para, y sólo necesita ejecutarse en una tabla específica.

Optimización del servidor MySQL

hardware de servidor optimizado

servidor de rendimiento del hardware determina directamente el rendimiento de la base de datos MySQL. cuellos de botella de rendimiento de hardware, sino que también determina la velocidad y la eficiencia de la base de datos. Comúnmente utilizado para optimizar el hardware del servidor de la siguiente manera: 
1. configuración de memoria de gran tamaño. 
2. Con el sistema de disco de alta velocidad, leer el disco para reducir la latencia y mejorar la velocidad de respuesta. 
3. distribución racional de disco I / O, el disco I / O propagación a través de múltiples dispositivos, con el fin de reducir la competencia por los recursos, mejorar la capacidad de operar en paralelo. 
4. La configuración multi-procesador, base de datos MySQL es multi-hilo, multi-procesador puede ejecutar múltiples hilos simultáneamente.

MySQL optimización de los parámetros

Mediante la optimización de los parámetros de MySQL puede mejorar la utilización de los recursos, con el fin de mejorar el rendimiento del servidor MySQL. 
parámetros de configuración del servidor de MySQL están en my.cnf o my.ini grupo [mysqld]. donde:

  • key_buffer_size: representa el tamaño de la memoria intermedia de índice. Todos los hilos comparten memoria intermedia de índice. tamaño del búfer razonable puede mejorar el índice mango.

  • table_cache: indica el número de mesas abiertas al mismo tiempo.

  • query_cache_size: indica que el tamaño de la consulta de la memoria intermedia.

  • innodb_buffer_pool_size: indica la tabla de caché y el índice máximo de tipo InnoDB. Cuanto más alto sea el valor, mayor será la velocidad de la consulta será.

  • max_connections: indica el número máximo de conexiones, que no es el más grande, mejor, excesivo número de conexiones puede provocar que el servidor MySQL muertos. 
    ...... otra ligeramente.

suplemento

1. El índice no es mejor? 
Índice razonable puede mejorar la velocidad de consulta, pero el índice no es mejor. Antes de ejecutar la instrucción de inserción, MySQL para indexar el registro recién insertado, por lo que el índice dará lugar a la inserción excesiva lentitud. 
2. Cómo utilizar el búfer de consulta? 
Consulta buffer puede acelerar la búsqueda, pero sólo para más consultas, instrucciones de actualización relativamente pocos casos, formas específicas de parámetros de referencia a optimizar MySQL.

Supongo que te gusta

Origin www.cnblogs.com/liboware/p/12542028.html
Recomendado
Clasificación