2010-11-15 23 views
8

Mostra stato come restituisce 'Qcache_queries_in_cache':Come elencare le query memorizzate nella cache in MySQL? (Qcache_queries_in_cache)

+-------------------------+----------+ 
| Variable_name   | Value | 
+-------------------------+----------+ 
| Qcache_queries_in_cache | 327  | 
+-------------------------+----------+ 

Come faccio a stampare questi 327 domande?

Nel tentativo di ottimizzare il caching di mysql, voglio provare a passare alla cache "on demand". Ma prima di farlo voglio avere un senso definitivo di quali query vengono memorizzate nella cache o scartate. Ho provato mysql docs, google e la ricerca di stackoverflow ma senza fortuna.

risposta

8

Le query SQL AFAIK non vengono archiviate in Qcache solo il loro hash. Quindi non c'è modo di trovare quali query sono ora memorizzate nella cache, se si esegue una query e si vedono le modifiche della colonna Valore.

+0

thx ... Sono su un server di produzione e l'esecuzione di molte query eseguite e le modifiche di individuazione non funzioneranno. Speravo in una modalità di debug di qualche tipo. – user508627

+0

C'è un modo per arrivare a quegli hash? – simbabque

2

se si attiva una sessione specifica profilazione variabile

SET SESSION PROFILING=on; 
show profiles; 

Ora controllando Profilo show per la query tua query_id;

mysql> show profile for query 2; 

+--------------------------------+----------+ 
| Status       | Duration | 
+--------------------------------+----------+ 
| starting      | 0.000017 | 
| checking query cache for query | 0.000005 | 
| checking privileges on cached | 0.000003 | 
| sending cached result to clien | 0.000005 | 
| logging slow query    | 0.000002 | 
| cleaning up     | 0.000001 | 
+--------------------------------+----------+ 

Controllando la colonna dello stato è possibile verificare se le query sono memorizzate nella cache.

Ma questa è solo una sessione specifica per cui è possibile abilitare il profilo per ogni sessione.

Problemi correlati