Advertencia
Debido a problemas con la escala y otros casos de esquina, ya no se recomienda el caché de consultas de MySQL/Mariadb. Recomendamos encarecidamente asegurarse de que el almacenamiento en caché se maneje en una aplicación nivel en su lugar.
Resumen
En la mayoría de los sistemas Linux, la instancia de la base de datos MySQL instalada de forma predeterminada a menudo se configura en un rango seguro de parámetros para garantizar un funcionamiento estable. La configuración de almacenamiento en caché de consultas generalmente no está habilitada o se establece de manera muy conservadora. Como resultado de este conservadurismo, el acceso a la base de datos utiliza poca memoria del sistema para almacenar en caché consultas repetidas. Al habilitar el caché y ajustarlo a las necesidades de la aplicación, las mejoras se pueden ver visiblemente en la mayoría de las aplicaciones, especialmente en las tiendas de comercio electrónico Magento.
Para la prueba inicial, se decidió como punto de partida un tamaño de caché de 32M. Antes de cualquier cambio, los parámetros de caché de la base de datos ubicados en /etc/my.cnf fueron configurados como:
query_cache_limit 1M query_cache_size 0 query_cache_type ON
Cambiando los parámetros
Para realizar cambios, el archivo /etc/my.cnf se editó para incluir los siguientes parámetros y se reinició la base de datos. Después de los cambios, la base de datos informa lo siguiente:
query_cache_limit 2M query_cache_size 32M query_cache_type ON
Prueba
Para probar nuestros cambios, inicialmente instalamos una tienda de comercio electrónico Magento con la base de datos de productos de demostración predeterminada instalada. Programamos la obtención de cada producto mediante el asedio. Al aumentar el tamaño de caché en la base de datos, se redujeron otros 200 ms del tiempo de respuesta del sitio. Este simple cambio indicaría que podría haber más margen de mejora en los parámetros y el diseño del subsistema de la base de datos para optimizarlo específicamente para el uso de Magento, teniendo en cuenta que la optimización para Magento puede ser, en el mejor de los casos, una tarea complicada.
¡Trampas!
Se ejecutó el popular script MySQLTuner (como se detalla en nuestra guía MySQL Performance Tuning and Optimization) e indicó que cambiar el número de subprocesos sería beneficioso, sin embargo, este cambio resultó en una caída del rendimiento. por 290ms!
Conclusión
Fuera de la caja, la configuración de la base de datos MySQL es buena, pero podría ser significativamente mejor. El aumento del caché proporcionó una respuesta beneficiosa instantánea. Además de las mejoras en el rendimiento de la base de datos, también existen varias tecnologías de caché, como Memecached y Redis, que mejorarán el rendimiento al almacenar en caché los datos a los que se hace referencia con frecuencia.