Modificar o activar el tamaño de caché de MySQL
En las instalaciones por defecto de MySQL, en muchas ocasiones, o aparece deshabilitada la caché de consultas o aparece, pero con muy poco espacio disponible.
Como podréis figuraros, la caché de consultas almacena en memoria física, la RAM, las últimas consultas realizadas y su resultado, de forma que si alguien repite dichas consultas, el acceso a su resultado sea casi inmediato comparado con recurrir a la base de datos en sí, a la que probablemente debamos acceder a disco y recorrer sus complejos árboles B y B+ internos.
El resultado de usar caché de MySQL es muy evidente en cuando a velocidad y en una entrada posterior os comentaré cómo sacar estadísticas para ver con más concreción cuál es la mejora.
¿Cómo activarla? ¿Cómo aumentar su tamaño?
Para ver si está activada nos dirigimos al fichero my.cnf (que probablemente esté en /etc o /etc/mysql) y buscamos dentro las siguientes cadenas:
query_cache_limit = 16M query_cache_size = 512M
Como podéis imaginaros tenemos dos opciones:
- Que no aparezcan dichas opciones: la caché está desactivada, podéis agregar dichas líneas sin problema en dicho fichero
- Que aparezcan: ¿está activada? Pero, ¿qué significan dichas opciones?
Por partes:
- query_cache_limit: establece la consulta máxima a cachear, por defecto viene a 1MB, yo trabajo en ocasiones con datos BLOB recurrentes, de ahí que haya puesto un valor exageradamente grande, 16MB.
- query_cache_size: tamaño de la caché, si tenéis un equipo con varios gigas de RAM, con 512MB tendréis para almacenar muchísimas consultas y 512MB no os supondrán gran pérdida. De hecho si es un servidor sólo con MySQL sería razonable incluir incluso más cantidad, cada caso es particular y ya sabréis cuál es la mejor cifra por vuestra experiencia.
Una vez hecho eso, sólo debemos reiniciar el servicio y si MySQL arranca bien, todo está hecho, para confirmar, mirad la siguiente entrada para ver estadísticas y más datos:
sudo service mysql restart