2011-03-08 38 views

Respuesta

173

Creo que se puede utilizar ...

RESET QUERY CACHE; 

... si el usuario está ejecutando como tiene recargar derechos. Como alternativa, puede desfragmentar la caché de consultas a través de ...

FLUSH QUERY CACHE; 

Consulte la sección Query Cache Status and Maintenance del manual de MySQL para más información.

+23

REINICIAR caché de consultas limpiará la caché de consultas, pero las necesidades Privilegios de recargar FLUSH QUERY CACHE no borra la caché de consultas, simplemente desfragmenta dejando los resultados de la consulta en caché en su lugar – carpii

+0

Esto realmente ayudó. Estamos utilizando NodeJS con MySQL utilizando pool con 10 conexiones. Estábamos enfrentando el problema de que una sola conexión escribiera datos y que otros los leyeran y almacenaban en caché. Este parece ayudar mucho. Thx, – psuhas

+0

Por alguna razón, 'RESET QUERY CACHE' en realidad no lo borra. Además, el reinicio del servidor MySQL no ayuda. Un 'SELECT SQL_NO_CACHE' explícito hace el truco, pero no' RESET QUERY CACHE'. 'sync && echo 3 | sudo tee/proc/sys/vm/drop_caches' de la otra respuesta tampoco ayudó. –

17

según la documentation, esto debería hacerlo ...

RESET QUERY CACHE 
39

En mi sistema (Ubuntu 12.04) Encontré RESET QUERY CACHE e incluso reiniciar el servidor mysql no es suficiente. Esto se debió a memory disc caching.
Después de cada consulta, se limpia el caché de disco en el terminal:

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

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

RESET QUERY CACHE; 
+2

Tenga en cuenta que la "caché de consultas" en MySQL no es una caché general de páginas/bloques. Es un caché de los _resultados_ de consultas. No siempre es útil, no lo usamos. http://dev.mysql.com/doc/refman/5.6/en/query-cache.html –

+0

@phil_w hay una forma de restablecer el caché de páginas/bloques que usa mysql sin reiniciar mysql y borrar el (linux) ¿Caché del sistema operativo? – matanster

Cuestiones relacionadas