Configurar y optimizar el servidor MySQL – My.cnf

Recuerdo que la primera vez que instale el servicio MySQL, en una maquina local, nunca tuve la necesidad de configurar ni optimizar la configuración (My.cnf) por default de MySQL.

Pero cuando instalas el MySQL en un Servidor de Producción las cosas cambian, es importante tener en cuenta ciertas consideraciones para ello, por ejemplo la cantidad de cores con los que cuente nuestro servidor, la cantidad de memoria disponible, la velocidad en disco entre las principales.

Uno de los factores mas importantes es definir el uso de la memoria total que utilizará  MySQL, esto lo podemos obtener de la multiplicación de la cantidad de buffers y las conexiones totales configuradas.

Existen varios parámetros con los que se puede realizar una buena configuración del Servidor MySQL, aquí las principales:

query_cache_size si las aplicaciones que consumen la base de datos tiene lecturas intensivas y no se tiene cache a nivel de aplicaciones, este parámetro puede ser de gran ayuda. Valores desde los 32M a los 512M tienen sentido normalmente. Después de activarlo verifica si se esta siendo usado.

sort_buffer_size buffer, es usado para ordenar los resultados, utilizado por cada thread  de la capa SQL, cuando el “sorting” necesita ser ejecutado.

read_rnd_buffer_size, read_buffer: son variables utilizadas para leer buffer de tablas MyISAM para Full Table Scan y para leer filas ordenadas con sort (read_rnd_buffer_size). Otros motores como Innodb no usan esta variable.

join_buffer_size bufer es utilizado para joins sin índices y otros casos. Es usado a nivel de capa SQL por lo que se aplica a todos los motores de BD.

table_cache este parametro permite evitar la reapertura 

tmp_table_size esta variable especifíca el tamaño máximo implícito temporal de una tabla que ha sido creada automaticamente durante la ejecución de un query, que permitirá alcanzar en MEMORIA antes que sea convertida en disco en una tabla temporal MyISAM . Tamaño máximo permitido para tablas “in-memory” (usado por querys complejas). Pueden llegarse a necesitar más de una tabla por query.

thread_cache_size número de threads que MySQL puede cachear y reusar. 32-64 suele ser un buen valor.

innodb_buffer_pool_size, es una de los parámetros mas importantes en la configuración del motor InnoDB. 70-80% de la memoria es una buena opción, aunque todo depende del tamaño de nuestra BD y los recursos disponibles. Si nuestra BD es pequeña, configurado un buffer algo más grande que nuestra BD sería suficiente.

Nos vemos pronto!!!

René Choque

 

Anuncios
Esta entrada fue publicada en Base de Datos y etiquetada , , . Guarda el enlace permanente.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s