sql >> Base de Datos >  >> RDS >> Mysql

10 consejos útiles sobre el ajuste del rendimiento de MySQL

Al igual que todas las demás bases de datos, MySQL puede ser complicado y puede detenerse en cualquier momento, poniendo en peligro todos sus negocios y tareas. Sin embargo, los errores comunes son la base de la mayoría de los problemas que afectan el rendimiento.

Para asegurarse de que su servidor funcione de manera eficiente y efectiva al proporcionar un rendimiento estable y consistente, debe eliminar los errores que a menudo se producen por alguna sutileza en la carga de trabajo o la trampa de configuración.

A medida que crece el volumen de datos, se vuelve cada vez más complejo. Por lo tanto, es esencial optimizar bien las bases de datos para brindar una experiencia de usuario final eficiente. El ajuste del rendimiento de MySQL es la solución definitiva, ya que ayudará a proporcionar soluciones a estos problemas de la base de datos.

Ajuste del rendimiento de MySQL

En este artículo, encontrará algunos consejos útiles sobre cómo utilizar el ajuste de rendimiento de MySQL. Esto lo ayudará a obtener el mejor rendimiento de su MySQL.

Paso 1:No uses MySQL como cola

Sin su conocimiento, colas y patrones similares a colas pueden infiltrarse en su aplicación. Un ejemplo típico es marcar correos electrónicos como no enviados, enviarlos y luego marcarlos como enviados. este es un problema común pero rara vez imperceptible que la mayoría de los usuarios tienden a ignorar.

Provocan dos grandes complejidades de rendimiento:

  1. Serializan su carga de trabajo, evitando así que las tareas se completen en secuencia paralela. Además, a menudo dan como resultado una tabla que contiene trabajo en proceso y datos históricos de trabajos que se procesaron hace mucho tiempo. Esto generalmente ralentiza la velocidad de procesamiento y el proceso.
  2. Ambos agregan latencia a la aplicación y se cargan en MySQL.

Paso 2:Cree un perfil de su carga de trabajo

Perfilar su carga de trabajo es esencial, ya que lo ayuda a comprender cómo funciona su servidor y el tiempo que dedica a procesar tareas. La mejor herramienta para ayudarlo a hacer esto es el analizador de consultas MySQL Enterprise Monitors del kit de herramientas de Percona.

Nota: Solo disponible para usuarios de Linux

Las herramientas pueden capturar las consultas ejecutadas por el servidor y devolver una tabla de tareas ordenadas en orden decreciente de tiempo de respuesta.

La creación de perfiles de su carga de trabajo expone las consultas más costosas para un mayor ajuste. El tiempo es más crítico porque lo importante es la rapidez con la que se completa al emitir una consulta.

Las herramientas de creación de perfiles también agrupan consultas similares, lo que le permite ver las consultas lentas y las rápidas, pero se ejecutan muchas veces.

Paso 3:comprender los cuatro recursos fundamentales

La CPU, la memoria, el disco y la red son los cuatro recursos fundamentales necesarios para que una base de datos funcione. Por lo tanto, es probable que la base de datos funcione mal si alguno de estos recursos está sobrecargado, es débil o errático.

Siempre debe asegurarse de que los cuatro recursos mencionados sean fuertes y estables para que MySQL funcione sin problemas. Las organizaciones suelen elegir aquellos servidores con CPU y discos rápidos que pueden albergar más ranuras de memoria.

Agregar memoria es una forma económica y fácil de aumentar el rendimiento en órdenes de magnitud, especialmente en cargas de trabajo vinculadas al disco. Esto puede parecer irrazonable, pero muchos discos están sobreutilizados ya que no hay suficiente memoria para almacenar el conjunto de datos de trabajo del servidor.

Al solucionar problemas, verifique el rendimiento y la utilización de los cuatro recursos cuidadosamente para ayudar a determinar las estadísticas de rendimiento de los cuatro recursos. Es importante monitorear su desempeño, ya que ayuda al usuario a saber qué se debe mejorar o qué se debe reemplazar. Puede probar este método ya que es uno de los métodos más rápidos para resolver problemas de rendimiento en MYSQL.

Paso 4:filtrar los resultados por el más barato primero

Una excelente forma de optimización es hacer primero el trabajo barato e impreciso, luego el trabajo duro y preciso en los más pequeños, lo que da como resultado el conjunto de datos.

Ejemplo:

Suponga que está buscando algo dentro de un radio determinado de un punto geográfico. La primera herramienta en la caja de herramientas de mi programador es la fórmula Haversine {Gran círculo} para calcular la distancia a lo largo de la superficie de una esfera.

El problema con la técnica es que la fórmula requiere muchas operaciones trigonométricas, que son muy sensibles a la CPU. Como resultado, los cálculos tienden a ejecutarse lentamente y hacen que la utilización de la CPU de la máquina se dispare.

Antes de usar la fórmula, reduzca sus registros a un pequeño subconjunto del total y recorte el conjunto resultante a un círculo preciso. El cuadrado que contiene el círculo, ya sea de forma precisa o imprecisa, es una manera fácil de hacer esto. Esto asegura que el mundo fuera del cuadrado nunca se vea afectado por todas esas costosas funciones trigonométricas.

Paso 5:conocer y comprender las dos trampas mortales de la escalabilidad.

La escalabilidad puede no ser tan vaga como muchos creen. En su lugar, hay definiciones matemáticas precisas de escalabilidad expresadas como ecuaciones que resaltan por qué los sistemas no escalan tan bien como deberían.

La Ley de escalabilidad universal es una definición útil para expresar y cuantificar las características de escalabilidad de los sistemas. Explica los problemas de escalado en términos de serialización y diafonía, que son los dos costes fundamentales.

Los procesos paralelos que deben detenerse para que ocurra algo serializado están inherentemente limitados en su escalabilidad. Además, si los procesos paralelos necesitan comunicarse entre sí para coordinar su trabajo, se limitan entre sí. Por lo tanto, es preferible evitar la serialización y la diafonía para permitir que su aplicación se escale de manera rápida y eficiente.

Paso 6:No se concentre demasiado en la configuración

La gente pasa demasiado tiempo modificando las configuraciones. El resultado no suele ser una mejora significativa y, en ocasiones, puede ser muy perjudicial. La configuración predeterminada que se incluye con MySQL es única y está muy desactualizada, no es necesario configurar nada.

Por lo tanto, es esencial tener los conceptos básicos correctos y cambiar la configuración solo si es necesario. En numerosos casos, no se recomiendan las herramientas de ajuste del servidor porque pueden engañar a los usuarios con información contradictoria. Algunos tienen codificados consejos peligrosos e inexactos, como índices de aciertos de caché y fórmulas de consumo de memoria.

Paso 7:Tenga cuidado con las consultas de paginación

Las aplicaciones que paginan suelen poner de rodillas al servidor. Las optimizaciones a menudo se pueden encontrar en la otra interfaz de usuario. Por ejemplo, en lugar de mostrar el número exacto de páginas en los resultados y enlaces, puede mostrar solo un enlace a una página que contenga esa información. Por lo tanto, puede evitar que las personas sobrecarguen la página original.

En el lado de la consulta, en lugar de usar el desplazamiento con límite, se puede seleccionar una fila más y, cuando hace clic en "página siguiente", puede designar esa fila final como el punto de partida para el siguiente conjunto de resultados.

Paso 8:Guarda las estadísticas con entusiasmo, alerta de mala gana

Las alertas y el monitoreo son esenciales, pero lo que sucede con el sistema de monitoreo típico es que comienza a enviar falsos positivos. Los administradores de sistemas configuran reglas de filtrado de correo electrónico para detener el ruido, y pronto su sistema de monitoreo se vuelve inútil.

Es importante capturar y guardar todas las métricas que pueda porque estará contento de tenerlas cuando intente descubrir qué cambió en el sistema. Además, cuando surja un problema extraño, podrá señalar un gráfico y rastrear fácilmente un cambio en la carga de trabajo del servidor.

La gente suele alertar sobre cosas como la tasa de aciertos del búfer o la cantidad de tablas temporales creadas por segundo. El problema es que no existe un umbral razonable para tal proporción. Además, el umbral adecuado es diferente entre los servidores y de vez en cuando a medida que cambia su trabajo.

Como resultado, alerta con moderación y solo en condiciones que indiquen un problema definido y procesable. Por ejemplo, una proporción de aciertos de búfer baja no es procesable, ni indica un problema real, pero un servidor que no responde a un intento de conexión es un problema real que debe resolverse.

Paso 9:Aprenda las tres reglas de indexación

Este es el tema más incomprendido en las bases de datos porque hay muchas formas de aprender cómo funcionan los índices y cómo los usa el servidor. Los índices, si se diseñan correctamente, cumplen tres propósitos importantes en un servidor de base de datos;

  1. En lugar de filas individuales, los índices permiten que el servidor encuentre grupos de filas adyacentes. Mucha gente piensa que el propósito de los índices es encontrar filas individuales, pero encontrar filas individuales conduce a operaciones de disco aleatorias, lo que hace que el servidor sea muy lento. Encontrar grupos de filas es mucho mejor e interesante que buscar filas de una en una.
  2. También permite que el servidor evite ordenar al leer las filas en el orden deseado. Leer filas, a diferencia de ordenar, es mucho más rápido y menos costoso.
  3. Los índices también permiten que el servidor satisfaga consultas completas solo desde el índice, evitando la necesidad de acceder a la tableta. Esto se conoce como índice de covey o consulta de solo índice.

Paso 10:Aproveche la experiencia de sus pares

¿Te importaría no hacerlo solo? Desconcertarse con los problemas y hacer lo que le parezca lógico y sensato podría funcionar mejor, pero no todo el tiempo. Por lo tanto, cree una red de recursos relacionados con MySQL que vaya más allá de los conjuntos de herramientas y las guías de resolución de problemas.

Las personas tienen un conocimiento increíble al acecho en listas de correo, foros, etc. Además, las conferencias, las ferias comerciales y los eventos de grupos de usuarios locales brindan valiosas oportunidades para obtener información y establecer relaciones con colegas que pueden ayudarlo.

Para los pocos que buscan herramientas para complementar estos consejos, pueden consultar el Asistente de configuración de Percona para MySQL y los complementos de monitoreo de MySQL Percona.

El asistente de configuración puede ayudarlo a generar una línea de base. my.cnf para un nuevo servidor superior a los archivos de muestra que se envían con el servidor.

El asesor de consultas que es superior a los archivos de muestra que se envían con el servidor. El asesor analizará su SQL para ayudar a detectar patrones potencialmente destructivos, como consultas de paginación (consejo 7).

Los complementos de monitoreo de Percona son conjuntos de complementos de monitoreo y gráficos que lo ayudan a guardar estadísticas con entusiasmo y alertar de mala gana (Paso n. ° 8). Todas estas herramientas están disponibles gratuitamente.

Beneficios de la optimización del rendimiento

El beneficio principal es que le permite evitar el aprovisionamiento excesivo y reducir los costos al dimensionar correctamente sus servicios. También le brinda información sobre si mover el almacenamiento de datos o agregar capacidad del servidor mejorará el rendimiento o no y, de ser así, cuánto será.

Una vez que una base de datos se ajusta correctamente, brinda resultados de rendimiento beneficiosos con excelentes funcionalidades. No solo reduce la carga de tareas no deseadas, sino que también optimiza la base de datos MySQL para una recuperación de datos más rápida.

Otras configuraciones pueden marcar la diferencia según su carga de trabajo o hardware. El objetivo es brindarle algunos ajustes de rendimiento de MySQL para obtener rápidamente una configuración de MySQL sana sin perder demasiado tiempo cambiando configuraciones no básicas o leyendo documentación para comprender qué configuraciones son importantes para usted.

Conclusión

En conclusión, el ajuste del rendimiento ofrece muchos beneficios y se recomienda cuando se trabaja con grandes extensiones de datos para mejorar la eficiencia de su servidor. Siguiendo los consejos dados en este artículo, podrá realizar ajustes de rendimiento de MySQL en su servidor y bases de datos cómodamente.