Slow Query Log
Lo slow query log contiene tutte le query SQL la cui esecuzione è durata troppo tempo.
Attivare lo Slow Query Log
Lo slow query log è disabilitato per default. Per abilitarlo si può usare l'opzione --slow_query_log. La variabile di sistema log_outputdetermina in che modo l'output viene scritto, e può anche disabilitarlo. Per default è scritto in un file, ma può anche essere scritot in una tabella. Il nome del file è determinato dall'opzione --slow_query_log_file=file_name, il cui valore predefinito è host_name-slow.log.
Cosa c'è nello Slow Query Log
Vengono loggate solo le query non amministrative, così come le query che utilizzano gli indici. Può essere particolarmente utile includere nel log le query che non usano indici: si può farlo modificando la variabile log_queries_not_using_indexes.
E' anche possibile loggare le query amministrative lente, come le istruzioni ALTER TABLE, ANALYZE TABLE, CHECK TABLE, CREATE INDEX, DROP INDEX, OPTIMIZE TABLE e REPAIR TABLE, usando la variabile --log-slow-admin-statements.
Il log contiene le query SQL la cui esecuzione è durata più di long_query_time secondi, per default dieci secondi, così come le variabili che hanno dovuto esaminare più di min_examined_row_limit righe. Il tempo impiegato per acquisire i log non è considerato in questo calcolo, solo il tempo per risolvere la query stessa.
Visualizzare lo Slow Query Log
Gli slow query log scritti su file possono essere visualizzati con qualsiasi editor di testo, o utilizzando il tool mysqldumpslow per elaborare sommari delle informazioni.
E' molto importante cercare di ottimizzare le query che si trovano nel log, costruendo query più efficienti o facendo un miglior uso degli indici.