query_cache es una funcionalidad de MySQL por la que permite tener en memoria caché una consulta SQL previamente realizada si los valores de ésta no se han visto modificados.
Gracias a esta funcionalidad, los datos serán devueltos con mayor rapidez, pues la consulta ya fue realizada y no se volverá a realizar. Esto es muy útil para servidores de bases de datos con una alta carga de trabajo y también muy útil para consultas complejas, pero relativamente estáticas.
Para comprobar si nuestro servidor MySQL tiene soporte de query_cache:
mysql> show variables like 'have_query_cache'; +------------------+-------+ | Variable_name | Value | +------------------+-------+ | have_query_cache | YES | +------------------+-------+ 1 row in set (0.00 sec)
Si la respuesta es YES, sólo queda establecer los valores a las variables relativas a todos los temas de caché. Las dos variables más importantes son: query_cache_type y query_cache_size.
La primera establece el método de funcionamiento. Los valores que puede tomar son:
- 0 o OFF, query_cache deshabilitada
- 1 o ON, query_cache esta habilitada para todas las querys menos las que indiquemos con el hint SQL_NO_CACHE
- 2 o DEMAND, la query cache esta deshabilitada para todas las querys menos las que indiquemos con el hint SQL_CACHE
La segunda el límite de memoria que pueden ocupar las consultas. Una vez configuradas las variables, tendríamos que tener algo similar a lo siguiente.
mysql> show variables like '%query_cache%'; +------------------------------+-----------+ | Variable_name | Value | +------------------------------+-----------+ | have_query_cache | YES | | query_cache_limit | 16777216 | | query_cache_min_res_unit | 4096 | | query_cache_size | 134217728 | | query_cache_strip_comments | OFF | | query_cache_type | ON | | query_cache_wlock_invalidate | OFF | +------------------------------+-----------+ 7 rows in set (0.00 sec)
No hay comentarios :
Publicar un comentario