Statistiche estese dello Slow Query Log
Questa aggiunta si basa sulla patch microslow, di Percona.
Panoramica
- Aggiunte le seguenti informazioni allo slow log: 'Thread_id, Schema, Query Cache hit, Rows sent and Rows examined'
- Aggiunte informazioni sulle statistiche sui piani delle query, opzionali, attivabili tramite log_slow_verbosity
- Aggiunte nuove variabili di sessione: log_slow_rate_limit, log_slow_verbosity, log_slow_filter
- Aggiunto log-slow-file come sinonimo di 'slow-log-file', perché molte variabili dello slow query log iniziano con 'log-slow'
- Aggiunto log-slow-time come sinonimo di long-query-time
Nuove variabili di sessione
log_slow_verbosity
E' possibile impostare la verbosità dello slow query log, assegnando alla variabile log_slow_verbosity una combinazione dei seguenti valori:
Piano delle query
- Per le query di tipo SELECT, informazioni sul piano di esecuzione. Queste includono "Full_scan", "Full_join", "Tmp_table", "Tmp_table_on_disk", "Filesort", "Filesort_on_disk" e il numero di "Merge_passes during sorting"
Innodb
- Riservato per uso futuro
Il valore predefinito è ' ', per compatibilità con MySQL 5.1.
I valori multipli devono essere separati da ','.
log_slow_filter
E' possibile definire quali query loggare nello slow query log assegnando alla variabile log_slow_filter una combinazione dei seguenti valori:
admin
- Istruzioni amministrative (create, optimize, drop etc...)
filesort
- Istruzioni che usano il piano filesort
filesort_on_disk
- Istruzioni che usano il filesort e le tabelle temporanee su disco
full_join
- Istruzioni che non usano gli indici per unire le tabelle di una join
full_scan
- Istruzioni che eseguono una scansione completa di una tabella
query_cache
- Istruzioni che vengono risolte tramite la cache delle query
query_cache_miss
- Istruzioni che non vengono risolte tramite la cache delle query
tmp_table
- Istruzioni che usano le tabelle temporanee in memoria
tmp_table_on_disk
- Istruzioni che usano le tabelle temporanee su disco
I valori multipli devono essere separati da ','. Se non si specifica alcuna opzione, per default tutte queste istruzioni verranno scritte nel log.
log_slow_rate_limit
La variabile log_slow_rate_limit limita le scritture sullo slow query log evitando di inserire tutte le query (solo una query / log_slow_rate_limit viene loggata). Questo è utile soprattutto quando si effettua il debug e si ottengono troppe informazioni dallo slow query log.
Si noti che in ogni caso, solo le query che impiegano più di log_slow_time o long_query_time' vengono loggate (come prima di questa aggiunta).