Soy de los que dice que algo por bien que funcione, si no puede medirse, no funciona tan bien. Las sensaciones son esos y aunque veamos que el tiempo de ejecución ha caído, no sabemos nada sobre la caché. Todos los que hayáis estudiado algo relacionado con la informática, conoceréis conceptos como la tasa de fallos y de aciertos de cualquier caché y ésta, no podía ser menos.
¿Cómo podemos ver esos datos? Veamos.
Comprobar si la caché está activada
Para esta labor usaremos el siguiente comando (siempre desde la consola de MySQL):
SHOW VARIABLES LIKE 'have_query_cache';
Que nos devolverá si está activada lo siguiente:
+------------------+-------+ | Variable_name | Value | +------------------+-------+ | have_query_cache | YES | +------------------+-------+
Parámetros de estado
Para ver todos los parámetros del estado de la caché, una vez sabemos que está activada hacemos:
SHOW STATUS LIKE 'Qcache%';
Y el resultado es el siguiente:
+-------------------------+-----------+ | Variable_name | Value | +-------------------------+-----------+ | Qcache_free_blocks | 3409 | | Qcache_free_memory | 501720656 | | Qcache_hits | 3265000 | | Qcache_inserts | 1321208 | | Qcache_lowmem_prunes | 0 | | Qcache_not_cached | 72160 | | Qcache_queries_in_cache | 10027 | | Qcache_total_blocks | 24143 | +-------------------------+-----------+
Veamos parámetro a parámetro cuál es su significado (el significado lo he buscado en la referencia de MySQL, donde aparece el significado de todas las variables del servidor):
¿Cómo medir la eficacia de nuestra caché?
Para medir la eficacia de la caché debemos hacer la siguiente fórmula para calcular el porcentaje de acierto y por lo tanto el porcentaje de consultas que en lugar de ir a buscarse a la base de datos física, se miran directamente en la caché.
El coeficiente será el siguiente: Qcache_hits/(Com_select+Qcache_hits)
¿Qué es Com_select? Este parámetro indica la cantidad de consultas SELECT que se han ejecutado fuera de la caché. Para obtenerlo ejecutamos la siguiente consulta:
show global status like 'Com_select%';
En mi caso obtengo:
+---------------+---------+ | Variable_name | Value | +---------------+---------+ | Com_select | 1371295 | +---------------+---------+
Mi tasa será por lo tanto: 3265000 / (1371295 + 3265000) = 70,42%, no está nada mal, ¿y la vuestra?
https://www.youtube.com/embed/z-xGk9c_eOw Guionista y locutor: Manuel Ignacio López Quintero.Fecha de publicación: 31 de diciembre de 2024.
Ver comentarios
que le paso al aspecto del blog :(
Se lo hemos cambiado, tenemos muchas cosas que mejorar todavía, pero ya queríamos un cambio de aspecto para Linux Hispano.
¿No te gusta? Tiene cosas (muchas) que mejorar, así que espero que cuando esté todo hecho te guste más.