Mejorando el rendimiento de Magento ajustando la configuración de Mysql

Uno de los grandes temas, la performance de Magento.

Hay que reconocer que si bien en el salto de la versión 1.0.x a la 1.1.x hubieron mejoras significativas, nunca está de más prestarle atención a las configuraciones de nuestro servidor.

Las siguientes indicaciones, comentadas en el post sobre rendimiento de Magento (la url es http://www.magentocommerce.com/blog/comments/performance-is-key-notes-on-magentos-performance/), nos regalan una mejora destacable en el comportamiento de Mysql.

Los cambios a la configuración que se proponen son:

[mysqld]
key_buffer = 512M
max_allowed_packet = 64M
table_cache = 512
sort_buffer_size = 4M
read_buffer_size = 4M
read_rnd_buffer_size = 2M
myisam_sort_buffer_size = 64M
tmp_table_size = 128M
query_cache_size = 96M
query_cache_type = 1
thread_cache_size = 8
max_connections = 400
wait_timeout = 300

Supongo que luego de creer ciegamente en el post, nos podríamos preguntar qué significa todo esto, o si esos valores se ajustan a nuestra configuración.

Algunas de las claves que vemos, son bastante explícitas, pero si tenemos duda, lo mejor es buscar en la documentación oficial sobre las variables de sistema de Mysql.

En cuanto a la segunda duda, referente a qué entorno se ajusta a esos valores; sólo puedo comentar que en las pruebas que he armado, estos valores funcionan muy bien en un servidor dedicado que se encargue tanto de las páginas web como de la base de datos, y que tenga 2 GB de memoria Ram.

Esta configuración no es algo exacto, dependerá siempre de una serie de variables referentes a nuestro sistema operativo y nuestro hardware.

Por supuesto, si algún Sysadmin quiere ampliar sobre el tema, bienvenido sea.

A manera de aclaración final, y dado que es una pregunta que en la comunidad reaparece continuamente. Para poder hacer estos cambios, es necesario que sea un hosting dedicado (salvo que tengan muy buena onda con quien administre el hosting compartido y acepte ajustar los parámetros del servicio para ustedes).

Este cambio de configuración afecta a todas las aplicaciones que utilicen las base de datos de ese servidor; y, convengamos, no es un uso muy austero de los recursos.