Configuraciones del servidor para alojar la base de datos MySQL

Configuraciones del servidor para alojar la base de datos MySQL

Tengo una aplicación web que utiliza una base de datos MySQL alojada en un servidor virtual. Estuve usando este servidor cuando inicié la aplicación y cuando la base de datos era muy pequeña. Ahora ha crecido y el servidor no puede manejar la base de datos, lo que provoca frecuentes errores de base de datos. Estoy planeando conseguir un servidor y necesito sugerencias para ello.
Como dije, la base de datos ahora tiene 9 GB y está creciendo considerablemente rápido. Hay varias tablas con millones de filas, que se actualizan y consultan con frecuencia. El error más frecuente que muestra la base de datos es Lock wait timeout exceeded. Anteriormente también solía haber errores "El número total de bloqueos excede el tamaño de la tabla de bloqueos", pero podía evitarlo aumentando el tamaño del grupo de búfer de Innodb.
Sugiera qué configuraciones debo buscar en el servidor que debo comprar. Leí en alguna parte que lo ideal es que la base de datos tenga un tamaño de grupo de búfer mayor que el tamaño de sus datos, por lo que en mi caso supongo que necesitaría memoria de 9 GB. ¿Qué otras cosas debo buscar en el servidor?

Sólo dime si debería darte más información sobre el

Respuesta1

Podrías usar el script perl llamadoMySQLTunerpara obtener algunas ideas de variables que modificar y, por lo tanto, de hardware que actualizar si es necesario.
Sin embargo, debe comprender la configuración antes de modificarla o corre el riesgo de agravar el problema.

El propio guión contiene un consejo muy revelador:

*ADVERTENCIA
Es extremadamente importante que comprenda completamente cada cambio que realice en un servidor de base de datos MySQL. Si no comprende partes del resultado del script, o si no comprende las recomendaciones, debe consultar a un administrador de bases de datos con conocimientos o incluso a un administrador del sistema en el que confíe. Pruebe siempre sus cambios en entornos de prueba y tenga siempre en cuenta que las mejoras en un área pueden afectar negativamente a MySQL en otras áreas.
*ADVERTENCIA

Encontrará excelentes artículos sobre el tema en Percona.Blog de rendimiento de MySQL, alista de librostratando ese tema e incluso screencast en supercona.tvsitio web.

Respuesta2

¿Has examinado la espera de bloqueo?

Puedes hacerlo activando el monitor de bloqueo InnoDB:

CREAR TABLA innodb_lock_monitor(a int) MOTOR=INNODB;

Luego siga su registro de errores de MySQL.

Para desactivar el monitor, suelte la tabla.

HT

información relacionada