[+/-]
MySQL 5.0 Server proporciona una query cache. Cuando se usa, la
query cache almacena el texto de una consulta
SELECT
junto con el resultado que se le envió
al cliente. Si se recibe una consulta idéntica posteriormente, el
servidor devuelve el resultado de la caché de consultas en lugar
de parsear y ejecutar la consulta de nuevo.
La caché de consultas es muy útil en un entorno donde tiene tablas que no cambian frecuentemente y donde el servidor recibe muchas consultas idénticas. Esta es la típica situación de muchos servidores Web que generan muchas páginas dinámicas basadas en contenido de base de datos.
Nota: La caché de consultas no devuelve datos antiguos. Cuando las tablas se modifican, cualquier entrada relevante en la caché de consultas se eliminia.
Nota: La caché de consultas no
funciona en un entorno donde tiene muchos servidores
mysqld actualizando las mismas tablas
MyISAM
.
Nota: La caché de consultas no se usa para comandos preparados en la parte del servidor. Si está usando este tipo de comandos preparados, considere que no se beneficiarán de la caché de consultas. Consulte Sección 24.2.4, “Sentencias preparadas de la API C”.
A continuación algunos datos de rendimiento de la caché de consultas. Estos resultados se generaron con el MySQL benchmark suite en un Linux Alpha 2 x 500MHz con 2GB RAM y 64MB de caché de consultas.
Si todas las consultas que está ejecutando son simples (tales como seleccionar un registro de una tabla con un registro), pero difierente de forma que las consultas no pueden cachearse, la pérdida de rendimiento por tener activa la caché de consultas es del 13%. Este puede considerarse el peor escenario posible. En el mundo real, las consultas suelen ser mucho más complicadas, así que la pérdida de rendimiento es considerablemente menor.
Las búsquedas para un registro en una tabla de un registro són un 238% más rápidas con la caché de consultas que sin ella. Esto puede considerarse como la mínima mejora esperada para una consulta que se cachea.
Para desactivar la caché de consultas al arrancar el servidor,
ponga la variable de sistema query_cache_size
a
0. Al desactivar el código de caché de consultas, no hay una
pérdida de rendimiento evidente. Las capacidades de la caché de
consultas pueden quitarse totalmente del servidor usando la
opción --without-query-cache
con
configure al compilar MySQL.
É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.