Blog de Daniel Zegarra Rotating Header Image

Cambiando parámetros en MySQL

Un problema que tuve con MySQL es que cuando trabajaba en producción la configuración que tenía la Base de Datos provocaba que rechace conexiónes a pesar de que el servidor no llegaba ni al 10% de su máxima capacidad.

Esto sucedía porque la configuración de fábrica que usa MySQL esta diseñada para un uso general. Si vamos a usar esa base de datos en producción debemos reducir sus restricciones.

Para esto es de suponer que el servidor cuenta con unos 4Gb de RAM y un procesador decente (preferible procesadores).

Como no puedo apagar mi servidor hago los cambios en caliente simplemente ejecutando una par de sentencias.

SET GLOBAL max_connections = 800;
SET GLOBAL innodb_thread_concurrency = 500;

Donde max_connections es el numero maximo de conexiones simultaneas que el servidor va a permitir y innodb_thread_concurrency las concurrencias (para las tablas innodb). Yo coloque estos numeros sin un analisis previo, pero me resultaron. Siempre monitoreo el consumo de recursos en mi base de datos. La consecuencia de subir estos los límites es que el servidor va a aceptar y procesar mas consultas.
Debes encontrar un balance entre la cantidad de peticiones que puedes recibir y la velocidad de respuesta. Para ello ten en cuenta la capacidad de tu hardware y el grado de uso de tu servidor. Es diferente si solo vas a almacenar nombres de paises o realizar una mineria de datos. Para el primer caso la concurrencia de tu servidor podria ser grande pero las consultas muy simples y por tanto el tiempo de respuesta para estas consultas simples seria muy corto.

Son cientos los parametros que puedes usar para tunear tu base de datos. Tienes aqui una lista de los parametros (comentados) que puedes modificar en MySQL. Ten mucho cuidado con las modificaciónes que realizas.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

*

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>