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, 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 utilizen las base de datos de ese servidor; y, convengamos, no es un uso muy austero de los recursos.