Todos los productos
Search
Centro de documentos

ApsaraDB RDS:¿Cómo configurar y usar la función de caché de consultas de ApsaraDB RDS for MySQL?

Última actualización: Sep 08, 2026

La caché de consultas almacena en memoria los conjuntos de resultados de las instrucciones SELECT. De este modo, las consultas idénticas omiten por completo el análisis sintáctico y la ejecución, ya que el resultado se devuelve directamente desde la caché. Esto reduce el uso de CPU, disminuye las IOPS y acorta los tiempos de respuesta en cargas de trabajo con muchas lecturas, pocas escrituras y datos estables. En cargas de trabajo con muchas escrituras o patrones de consulta variados, la sobrecarga por invalidar la caché puede reducir el rendimiento general. Por lo tanto, pruebe esta función con su carga de trabajo real antes de habilitarla en producción.

Cuándo usar la caché de consultas

La caché de consultas ofrece mejores resultados cuando se cumplen todas estas condiciones:

  • Los datos de las tablas cambian poco o son estáticos.

  • La misma instrucción SELECT se ejecuta de forma repetida.

  • Los conjuntos de resultados de las consultas son menores a 1 MB.

Importante

La caché de consultas no siempre resulta beneficiosa. En cargas de trabajo con escrituras frecuentes en las tablas o consultas muy variadas, la sobrecarga de invalidar y volver a llenar la caché puede reducir el rendimiento general. Pruebe esta función con su carga de trabajo real antes de habilitarla en producción.

Cómo funciona

  1. ApsaraDB RDS for MySQL calcula un valor hash para cada instrucción SELECT que recibe de un cliente.

  2. Si el hash coincide con una entrada almacenada, el resultado se devuelve de inmediato. La consulta no se analiza ni se ejecuta.

  3. Si no hay coincidencia, la consulta se ejecuta con normalidad. El hash y el resultado se guardan en la caché.

  4. Cuando cambia alguna tabla, se invalidan y eliminan de inmediato todas las consultas almacenadas que hacen referencia a dicha tabla.

Limitaciones

Las siguientes consultas no se almacenan en la caché:

  • Consultas que solo difieren en mayúsculas y minúsculas, espacios en blanco, contexto de base de datos, versión del protocolo o juego de caracteres. Estas se tratan como consultas distintas y se almacenan por separado.

  • Conjuntos de resultados de subconsultas. Solo se almacena el conjunto de resultados final de la consulta externa.

  • Consultas ejecutadas dentro de una función almacenada, un procedimiento almacenado, un trigger o un evento.

  • Consultas que llaman a cualquiera de estas funciones no deterministas: now(), curdate(), last_insert_id() o rand().

  • Consultas que hacen referencia a tablas de la base de datos mysql, information_schema o performance_schema.

  • Consultas que hacen referencia a tablas temporales.

  • Consultas que generan advertencias.

  • Consultas que contienen SELECT … LOCK IN SHARE MODE, SELECT … FOR UPDATE o SELECT * FROM … WHERE AUTOINCREMENT_COL IS NULL.

  • Consultas que hacen referencia a una variable definida por el usuario.

  • Consultas que usan la sugerencia SQL_NO_CACHE.

Configurar la caché de consultas

Establezca estos tres parámetros en ApsaraDB RDS console:

Parámetro

Valor predeterminado

Descripción

query_cache_type

—

Controla si la caché está activa. 0 = desactivada; 1 = activada (se excluyen las consultas que usan SELECT SQL_NO_CACHE); 2 = solo bajo demanda (solo se almacenan las consultas SELECT SQL_CACHE).

query_cache_size

3 MB

Memoria total asignada a la caché, en bytes. Debe ser múltiplo de 1024.

query_cache_limit

1 MB

Tamaño máximo del conjunto de resultados para una sola consulta almacenada, en bytes. Los resultados mayores a este valor no se almacenan.

En el panel de navegación izquierdo, haga clic en Parameters. En la lista de parámetros, busque query_cache_type y cambie su valor al deseado. El cambio surte efecto únicamente después de reiniciar la instancia. También puede modificar otros parámetros relacionados según sus necesidades, como query_cache_limit (valores válidos: de 1 a 1048576) y query_cache_size (valores válidos: de 0 a 104857600). Haga clic en el ícono de información junto a un parámetro para consultar su descripción.

Importante

Cambiar query_cache_type provoca un reinicio automático de la instancia de RDS. Si establece query_cache_size con un valor que no es múltiplo de 1024, la consola devuelve el error The specified parameter is invalid, cuyo código de error es InvalidParameters.Malformed.

Habilitar y deshabilitar la caché

La caché se habilita cuando query_cache_size > 0 y query_cache_type es 1 o 2.

La caché se deshabilita cuando query_cache_size = 0 o query_cache_type = 0.

Recomendaciones

  • No asigne un tamaño excesivo a query_cache_size. Una caché demasiado grande le quita memoria a otras estructuras de la instancia y aumenta la sobrecarga de las búsquedas. Comience con un valor entre 10 MB y 100 MB, según el tipo de instancia, y ajústelo después con base en el uso observado.

  • Para activar o desactivar la caché de consultas, ajuste el valor de query_cache_size en lugar de query_cache_type. Los cambios en query_cache_type surten efecto solo después de reiniciar la instancia.

  • La caché de consultas beneficia únicamente a ciertas cargas de trabajo. Pruébela a fondo con su carga de trabajo real antes de habilitarla, para evitar degradación del rendimiento u otros problemas.

Supervisar y comprobar el rendimiento de la caché

Consultar las estadísticas de la caché

Ejecute la siguiente instrucción para revisar el uso de la caché:

SHOW GLOBAL STATUS LIKE 'Qcache%';

El resultado incluye estas variables de estado:

Variable

Descripción

Qcache_hits

Número de consultas atendidas desde la caché

Qcache_inserts

Número de consultas agregadas a la caché

Qcache_not_cached

Número de consultas que no se pudieron almacenar

Qcache_queries_in_cache

Número de consultas almacenadas actualmente en la caché

Ejemplo de resultado:

mysql>show global status like 'Qca%';
+-------------------------+------------+
| Variable_name           | Value      |
+-------------------------+------------+
| Qcache_free_blocks      | 2763       |
| Qcache_free_memory      | 10115160   |
| Qcache_hits             | 365589713  |
| Qcache_inserts          | 612280336  |
| Qcache_lowmem_prunes    | 1257159    |
| Qcache_not_cached       | 1805250864 |
| Qcache_queries_in_cache | 9318       |
| Qcache_total_blocks     | 22409      |
+-------------------------+------------+

Comprobar el funcionamiento desde la consola de ApsaraDB RDS

En el panel de navegación izquierdo, elija Autonomy Service (formerly CloudDBA) > Performance Trends. Consulte la gráfica MySQL CPU/Memory Utilization y compruebe que el uso de CPU y de memoria se mantengan dentro del rango normal.