I log in MySQL includono: log di errore, log binari, query log generici, query logs lenti, ecc. Ecco due funzioni comunemente usate: log delle query generale e log delle query lente.
1) Log di query lenti:Registra tutte le query eseguite per più di long_query_time secondi o che non utilizzano indici
2) Registro generale delle query:Registra le connessioni clienti, le dichiarazioni stabilite ed eseguite.
1: Informazioni sulla query lenta di MySQL:
Il log delle query lente di MySQL è un tipo di logging fornito da MySQL, utilizzato per registrare le istruzioni secondo cui il tempo di risposta supera la soglia in MySQL, riferendosi specificamente a SQL con un tempo di esecuzione superiore a long_query_time valore, che verrà registrato nel log delle query lente (i log possono essere scritti su file o tabelle del database; se i requisiti di prestazioni sono elevati, si raccomanda di scrivere file). Di default, il database MySQL non abilita i log di query lenti, e il valore predefinito del long_query_time è 10 (cioè 10 secondi, solitamente impostato a 1 secondo), cioè le istruzioni che durano più di 10 secondi sono istruzioni di query lente.
In generale, le query lente avvengono in tabelle grandi (ad esempio, una tabella contiene milioni di dati) e i campi delle condizioni di query non sono indicizzati; al momento, i campi che corrispondono alle condizioni di query vengono scansionati nell'intera tabella, il che richiede tempo per verificare il long_query_time.
È una query lenta.
Domanda: Come posso controllare lo stato attuale dell'apertura del log delle query lente?
Entra in gioco il comando in MySQL:
I seguenti parametri sono principalmente padroneggiati:
(1) Il valore di slow_query_log è ON per attivare il log delle query lente, e OFF per disattivare il log delle query lente.
(2) Il valore di slow_query_log_file è il log delle query slow registrato nel file (nota: il nome predefinito è hostname.log, se il log delle query slow sia scritto nel file specificato, bisogna specificare il formato log di uscita della query lenta come file, e il comando correlato è: mostra variabili come '%log_output%'; per vedere il formato dell'output).
(3) long_query_time specifica la soglia per query lenta, cioè, se il tempo di esecuzione supera questa soglia, si tratta di un'istruzione di query lenta e il valore predefinito è 10 secondi.
(4) log_queries_not_using_indexes Se il valore è impostato su ON, tutte le query che non utilizzano l'indice verranno registrate (Nota: Se il log_queries_not_using_indexes è impostato solo su ON e il slow_query_log su OFF, l'impostazione non avrà effetto in questo momento, cioè l'impostazione entrerà in vigore se il valore del slow_query_log è impostato su ON) , che generalmente viene attivata temporaneamente quando la performance è accordata.
2. Registro generale delle query
Se il valore di general_log èON è acceso, perOFF è chiuso(Spento di default).
Controlla il formato dell'output attuale del log delle query lento, che può essere FILE (un hostname.log memorizzato in un file dati in un database digitale) oppure una TABLE (mysql.general_log memorizzata in un database)
(Nota: Il comando sopra è efficace solo per il momento in cui i riavvii MySQL non sono validi; se vuoi che abbia effetto permanente, devi configurare my.cnf)
La resa dell'output logaritario è la seguente:
my.cnf è configurato come segue:
general_log=1 #为1表示开启通用日志查询, un valore di 0 indica che la query di log generica è chiusa
log_output=FILE,TABLE# Imposta il formato di output del log generale a file e tabella
|