Borrar caché de consultas MySQL sin reiniciar el servidor

162

¿Hay alguna forma de borrar la caché de consultas mysql sin reiniciar el servidor mySQL?

Mahoor13
fuente

Respuestas:

218

Creo que puedes usar ...

RESET QUERY CACHE;

... si el usuario que está ejecutando tiene derechos de recarga. Alternativamente, puede desfragmentar el caché de consultas a través de ...

FLUSH QUERY CACHE;

Consulte la sección Estado y mantenimiento del caché de consultas del manual de MySQL para obtener más información.

John Parker
fuente
27
RESET QUERY CACHE borrará la caché de consultas, pero necesita privilegios RELOAD. FLUSH QUERY CACHE NO borra el caché de consultas, simplemente lo desfragmenta dejando los resultados de la consulta en caché en su lugar
carpii
Esto realmente ayudó. Estamos usando NodeJS con MySQL usando pool con 10 conexiones. Nos enfrentamos al problema de que los datos se escriben por una conexión y se leen por otra y se almacena en caché en gran medida. Este parece ayudar mucho. Thx,
psuhas
2
Por alguna razón, en RESET QUERY CACHErealidad no me lo aclara. Además, el reinicio del servidor MySQL no ayuda. Un explícito SELECT SQL_NO_CACHEhace el truco, pero no RESET QUERY CACHE. sync && echo 3 | sudo tee /proc/sys/vm/drop_cachesde la otra respuesta tampoco ayudó.
Jānis Elmeris
1
Y el reinicio de la máquina tampoco ayudó.
Jānis Elmeris
45

En mi sistema (Ubuntu 12.04) encontré RESET QUERY CACHEe incluso reiniciar el servidor mysql no es suficiente. Esto se debió al almacenamiento en memoria caché del disco .
Después de cada consulta, limpio el caché de disco en la terminal:

sync && echo 3 | sudo tee /proc/sys/vm/drop_caches

y luego restablecer el caché de consultas en el cliente mysql:

RESET QUERY CACHE;
Leszek
fuente
2
Tenga en cuenta que el "Caché de consultas" en MySQL no es un caché general de páginas / bloques. Es un caché de los resultados de las consultas. No siempre es útil, no lo usamos. dev.mysql.com/doc/refman/5.6/en/query-cache.html
phil_w
@phil_w ¿hay alguna manera de restablecer el caché de páginas / bloques que mysql usa sin reiniciar mysql y borrar el caché del sistema operativo (linux)?
matanster