Puede comprobar si la caché de consultas está presente en su servidor MySQL con el siguiente comando:
mysql> SHOW VARIABLES LIKE 'have_query_cache'; +------------------+-------+ | Variable_name | Value | +------------------+-------+ | have_query_cache | YES | +------------------+-------+
Puede defragmentar la caché de consultas para mejor uso de esta
memoria con el comando FLUSH QUERY CACHE
. El
comando no elimina ninguna consulta de la caché.
El comando RESET QUERY CACHE
elimina todos
los resultados de consultas de la caché de consultas. El
comando FLUSH TABLES
también lo hace.
Para monitorizar el rendimiento de la caché de consultas, use
SHOW STATUS
para ver las variables de estado
de la caché:
mysql> SHOW STATUS LIKE 'Qcache%'; +-------------------------+--------+ | Variable_name | Value | +-------------------------+--------+ | Qcache_free_blocks | 36 | | Qcache_free_memory | 138488 | | Qcache_hits | 79570 | | Qcache_inserts | 27087 | | Qcache_lowmem_prunes | 3114 | | Qcache_not_cached | 22989 | | Qcache_queries_in_cache | 415 | | Qcache_total_blocks | 912 | +-------------------------+--------+
Las descripicones de estas variables se dan en Sección 5.3.4, “Variables de estado del servidor”. Algunos de sus usos se describen aquí.
El número total de consultas SELECT
es igual
a:
Com_select + Qcache_hits + consultas con errores detectados por el parser
El valor Com_select
es igual a:
Qcache_inserts + Qcache_not_cached + consultas con errores encontrados durante la comprobación de columnas/permisos
La caché de consultas usa bloques de tamaño variable, así que
Qcache_total_blocks
y
Qcache_free_blocks
pueden indicar
fragementación de memoria de la caché. Tras FLUSH
QUERY CACHE
, sólo queda un bloque de memoria libre.
Cada consulta cacheada requiere como mínimo dos bloques (uno para el texto de la consulta y otro o más para el resultado de la misma). Además, cada tabla utilizada por una consulta requiere un bloque. Sin embargo, si dos o más consultas usan la misma tabla, sólo se reserva un bloque.
La información proporcionada por la variable de estado
Qcache_lowmem_prunes
puede ayudarle a ajustar
el tamaño de la caché de consultas. Cuenta el número de
consultas que se han eliminado de la caché para liberar memoria
con el fin de cachear nuevas consultas. La caché de consultas
usa una estrategia de resultado usado menos recientemente (LRU,
siglas en inglés de least recently used) para decidir qué
consultas eliminar de la caché. Más información para afinar
las variables en Sección 5.12.3, “Configuración de la caché de consultas”.
Ésta es una traducción del manual de referencia de MySQL, que puede encontrarse en dev.mysql.com. El manual de referencia original de MySQL está escrito en inglés, y esta traducción no necesariamente está tan actualizada como la versión original. Para cualquier sugerencia sobre la traducción y para señalar errores de cualquier tipo, no dude en dirigirse a mysql-es@vespito.com.