Muchas veces estamos buscando una forma de acelerar las consultas a nuestra base de datos MySQL, pero en MySQL nosotros podemos habilitar la cache de consultas para aumentar el rendimiento del servidor de base datos MySQL. Cada vez que la cache de consultas está activada, esta puede cachear o mantener la consulta en la memoria incrementando de esta forma el rendimiento.

Como sabemos, la velocidad es siempre el elemento más importante en el desarrollo de un sitio web especialmente para aquellos de alto tráfico de datos impulsados por páginas web. Usted puede probar a su vez con la activación de caché de consultas para acelerar la consulta.

Para acelerar una consulta se debe habilitar la cache de consulta MySQL, pero antes es necesario modificar algunas variables en el archivo de configuración del servidor MySQL  (usualmente es my.cnf o my.ini):

 1º Debe establecer query_cache_type a 1  (hay tres posibles opciones: 0 (deshabilitado / off), 1 (habilitado / on) y 2 (bajo solicitud).

query-cache-type = 1

 2º Debe establecer el tamaño de query_cache_size al que usted desee. Por lo general con 20MB es un valor normal.

query-cache-size = 20M

Si usted establece una cache de consulta “query-cache-type” = 2 (bajo demanda), usted tendrá que modificar sus consultas SQL (.sql), para que soporten la consultas de cache.

SELECT SQL_CACHE field1, field2 FROM table1 WHERE field3 = ‘yes’

Para verificar si su servidor  MySQL tiene habilitada la consulta cache, es suficiente ejecutar la siguiente consulta:

SHOW VARIABLES LIKE ‘%query_cache%';

Usted debería ver un resultado de este estilo:

+——-+—+
| Variable_name | Value |
+——-+—+
| have_query_cache | YES |
| query_cache_limit | 1048576 |
| query_cache_size | 20971520 |
| query_cache_type | ON |
+——-+—+
4 rows in set (0.02 sec)

Para verificar si consulta de cache MySQL está funcionando simplemente realice una consulta SQL dos veces y verifique la cache de mysql, se realice con el siguiente comando debajo:

SHOW STATUS LIKE ‘%qcache%';

+———+—-+
| Variable_name | Value |
+———+—-+
| Qcache_queries_in_cache | 1 |
| Qcache_inserts | 3 |
| Qcache_hits | 0 |
| Qcache_lowmem_prunes | 0 |
| Qcache_not_cached | 2 |
| Qcache_free_memory | 20947592 |
| Qcache_free_blocks | 1 |
| Qcache_total_blocks | 4 |
+———+—-+

La primera vez que se ejecuta una consulta a MySQL es normal que lleve un poco más de tiempo, pero la segunda vez será más rápida en comparación con el primer tiempo de consulta, y eso implica que la cache de consulta mysql está funcionando correctamente.

(Visitado 14.808 veces, 9 visitas hoy)