Todos los productos
Search
Centro de documentos

PolarDB:Fast Query Cache

Última actualización: Sep 05, 2026

Fast query cache es un motor de caché nativo de PolarDB que mejora las consultas por segundo (QPS) en cargas de trabajo con predominio de lecturas. Almacena los conjuntos de resultados en la caché y atiende las consultas repetidas directamente desde la memoria, sin necesidad de analizar sintácticamente, optimizar ni ejecutar el SQL de nuevo.

Funcionamiento

Cuando se ejecuta una consulta, fast query cache almacena su conjunto de resultados. Si la misma consulta se vuelve a ejecutar antes de que cambien los datos subyacentes, se devuelve de inmediato el resultado almacenado en la caché. La caché se invalida automáticamente cuando se modifican los datos.

Fast query cache resuelve tres limitaciones principales de la caché de consultas nativa de MySQL:

Limitación

Cómo lo resuelve fast query cache

Cuello de botella de concurrencia: la caché de consultas nativa de MySQL usa un bloqueo global que serializa el acceso bajo alta concurrencia. Esto degrada aún más el rendimiento conforme aumenta la cantidad de núcleos de CPU.

Fast query cache reemplaza el bloqueo global con un mecanismo de sincronización sin bloqueos. Así, varios núcleos de CPU procesan consultas en paralelo sin contención.

Recuperación deficiente de memoria: la caché de consultas nativa de MySQL preasigna un bloque de memoria fijo y no lo recupera de manera eficiente, lo que deja la memoria subutilizada.

Fast query cache utiliza asignación dinámica de memoria para recuperar de inmediato las entradas de caché no válidas. De este modo, mantiene un uso de memoria ágil y flexible.

Degradación del rendimiento con índices de aciertos bajos: la caché de consultas nativa de MySQL añade sobrecarga que puede ralentizar las consultas cuando el índice de aciertos de la caché es bajo.

Fast query cache supervisa los índices de aciertos de la caché en tiempo real y ajusta su política de almacenamiento dinámicamente. Con esto, mantiene un rendimiento estable incluso si bajan los índices de aciertos o la carga de trabajo combina lecturas y escrituras.

La caché de consultas nativa de MySQL se eliminó en MySQL 8.0. Fast query cache es el reemplazo diseñado específicamente para PolarDB.

Versiones compatibles

Fast query cache está disponible en a continuación versiones de revisión de PolarDB for MySQL:

Versión de PolarDB

Versión de revisión mínima

PolarDB for MySQL 8.0

8.0.1.1.5

PolarDB for MySQL 5.7

5.7.1.0.15

PolarDB for MySQL 5.6

5.6.1.0.29

Para comprobar la versión de revisión de su clúster, consulte Query the engine version.

Cuándo usar fast query cache

Fast query cache ofrece la mayor ventaja en los siguientes casos:

  • La carga de trabajo tiene predominio de lecturas, es decir, muchas más lecturas que escrituras.

  • Las consultas se repiten con frecuencia, lo que mantiene alto el índice de aciertos de la caché (por encima de ~60 %).

  • Grandes volúmenes de solicitudes de lectura concurrentes se benefician de la atención desde la memoria.

Evite habilitar fast query cache, o establézcalo en el modo DEMAND, en estos escenarios:

  • El rendimiento de escritura es alto o los datos cambian con frecuencia. Habilitar la caché en este escenario puede reducir el QPS aproximadamente un 2 %.

  • Pocas consultas se repiten, por lo que el índice de aciertos de la caché se mantiene bajo.

Habilitar fast query cache

Cada especificación de clúster de PolarDB incluye una capacidad de memoria preasignada para fast query cache. Para habilitar esta función, establezca el parámetro correspondiente en la configuración de su clúster o nodo. Para obtener instrucciones, consulte Specify cluster and node parameters.

Versión de PolarDB

Parámetro

Valor que debe establecer

PolarDB for MySQL 8.0

loose_query_cache_type

ON

PolarDB for MySQL 5.6 o 5.7

query_cache_type

1

Gestionar fast query cache

Controlar el comportamiento de la caché con loose_query_cache_type

Use loose_query_cache_type para controlar si fast query cache está siempre activo, es opcional o está deshabilitado. Establezca este parámetro a nivel de clúster o anúlelo a nivel de sesión para cargas de trabajo específicas.

Valor

Comportamiento

OFF (predeterminado)

Fast query cache está deshabilitado.

ON

Fast query cache está activo para todas las consultas. Agregue SQL_NO_CACHE a una consulta para excluirla de la caché.

DEMAND

Fast query cache está inactivo de forma predeterminada. Agregue SQL_CACHE a una consulta para almacenarla en la caché.

Elija el modo que coincida con su carga de trabajo:

  • Alto rendimiento de escritura o actualizaciones frecuentes de datos: use OFF para evitar la sobrecarga de la caché.

  • Muchas consultas lentas repetidas o un índice de aciertos de caché alto: use ON para maximizar las ganancias de QPS.

  • Carga de trabajo mixta donde solo algunas consultas se benefician: use DEMAND y agregue SQL_CACHE a las consultas que se repiten con frecuencia:

SELECT SQL_CACHE id, name FROM customer;

Controlar la duración de las entradas de caché con query_cache_lease_time

Fast query cache recupera la memoria de forma dinámica. Si un conjunto de resultados almacenado en la caché no recibe referencias durante el tiempo que especifica query_cache_lease_time (en segundos), se libera la entrada de caché y se recupera su memoria.

El valor predeterminado es 3600 segundos (1 hora).

Pruebas de rendimiento

A continuación se muestra una prueba de rendimiento que refleja el impacto en el QPS al habilitar fast query cache (PolarDB-QC) frente a deshabilitarlo (QC-OFF).

Entorno de prueba:

Parámetro

Valor

Clúster

PolarDB for MySQL 8.0 Cluster Edition, 8 núcleos, 64 GB de memoria

Memoria de caché

4 GB

Herramienta de prueba

Sysbench

Datos de prueba

25 tablas × 40 000 filas; 25 tablas × 400 000 filas

Casos de prueba

oltp_read_only, oltp_point_select, oltp_read_write con rand-type = special o uniform

Todos los resultados se basan únicamente en el nodo principal.

Resumen de resultados:

Escenario

Índice de aciertos de la caché

Cambio en QPS

Índice de aciertos alto (casos 1, 3, 4, 5, 7)

63 %–99 %

+53 % a +106 %

Índice de aciertos bajo (casos 2, 6)

Bajo

-3 % o menos

Tráfico mixto de lectura y escritura

—

-2 % o menos

El caso 7 (oltp_point_select especial, 400 000 filas) alcanza un índice de aciertos de la caché del 99 % y muestra la mayor mejora de QPS.

Casos de prueba y gráficos:

  • Caso 1: 25 tablas × 40 000 filas, rand-type = special, oltp_read_only 1

  • Caso 2: 25 tablas × 40 000 filas, rand-type = uniform, oltp_read_only 2

  • Caso 3: 25 tablas × 40 000 filas, rand-type = special, oltp_point_select 3

  • Caso 4: 25 tablas × 40 000 filas, rand-type = uniform, oltp_point_select 4

  • Caso 5: 25 tablas × 400 000 filas, rand-type = special, oltp_read_only 5

  • Caso 6: 25 tablas × 400 000 filas, rand-type = uniform, oltp_read_only 6

  • Caso 7: 25 tablas × 400 000 filas, rand-type = special, oltp_point_select 7

  • Caso 8: 25 tablas × 400 000 filas, rand-type = uniform, oltp_point_select 8

  • Caso 9: 25 tablas × 400 000 filas, rand-type = special, oltp_read_write 9

Compatibilidad

Fast query cache es compatible con la función de consistencia global (modo de alto rendimiento). Sin embargo, si fast query cache y la consistencia global (modo de alto rendimiento) están activos al mismo tiempo, y además se habilita la optimización MTT para la consistencia global (modo de alto rendimiento), la optimización MTT queda inactiva.

Para obtener más información sobre la consistencia global (modo de alto rendimiento), consulte Overview.