MySQL Slow Query Logs: una guida dettagliata

Pubblicato: 2023-08-01
Spargi l'amore

L'articolo è una risorsa concisa ma completa progettata per fornire una chiara comprensione dei log delle query lente di MySQL e di come interpretarli in modo efficace. Questa guida mira a svelare le complessità che circondano i log delle query lente, consentendo agli utenti di identificare e risolvere i colli di bottiglia delle prestazioni e potenziali problemi del database.

L'abilitazione dello Slow Query Log per MySQL si rivela una risorsa preziosa per diagnosticare problemi di prestazioni ed efficienza che potrebbero avere un impatto sul tuo server. Individuando le query con tempi di esecuzione notevolmente lenti, ottieni la possibilità di affrontarle in modo efficace ristrutturando l'applicazione responsabile delle query o ottimizzando le query stesse. Questo approccio proattivo assicura che le tue query siano costruite con un'efficienza ottimale, portando in ultima analisi a un miglioramento delle prestazioni complessive del sistema.

Sommario

Introduzione a MySQL

MySQL è uno dei più popolari sistemi di gestione di database relazionali open source, ampiamente utilizzato per l'archiviazione, la gestione e il recupero di dati per varie applicazioni Web e software. Come con qualsiasi sofisticato sistema di database, MySQL fornisce un robusto meccanismo di registrazione per registrare informazioni essenziali sulle sue attività e prestazioni. Questi registri svolgono un ruolo cruciale nel monitoraggio e nella risoluzione dei problemi del comportamento del database e possono fornire preziose informazioni sull'integrità e l'efficienza del sistema.

Tipi di log generati da MySQL

Esistono diversi tipi di log generati da MySQL, ciascuno con uno scopo specifico:

  1. Registro query generale : questo registro registra ogni query SQL eseguita sul server, indipendentemente dalla sua origine. È un potente strumento per il debug e la comprensione della sequenza di query eseguite, ma può anche generare una grande quantità di dati, rendendolo adatto principalmente per la diagnostica a breve termine.
  2. Registro degli errori: il registro degli errori registra tutti gli errori riscontrati durante il funzionamento del server MySQL. Questi errori possono includere problemi con l'avvio, l'arresto o altri errori critici che possono influire sulla funzionalità del database. Il monitoraggio del registro degli errori aiuta gli amministratori a identificare e risolvere rapidamente potenziali problemi.
  3. Registro delle query lente: come accennato in precedenza, il registro delle query lente registra le query che richiedono più tempo di una soglia predefinita per essere eseguite. Questo registro è fondamentale per identificare i colli di bottiglia delle prestazioni e le query inefficienti, consentendo agli amministratori di ottimizzare e migliorare le prestazioni complessive del database.
  4. Registro binario: il registro binario contiene un record di tutte le modifiche ai dati (inserimenti, aggiornamenti ed eliminazioni) apportate al database. Viene utilizzato per scopi di replica, consentendo la sincronizzazione dei dati su più server MySQL.
  5. Log di inoltro: il log di inoltro è specifico per la replica MySQL. Memorizza i dati ricevuti dal server master prima che vengano eseguiti sul server slave in una configurazione di replica.

Come attivare MySQL Slow Query Log?

Di seguito sono riportati i passaggi per attivare il registro delle query lente per MySQL o MariaDB.

  1. Innanzitutto, devi accedere a SSH utilizzando Bitwise. Apri il client SSH bit per bit. Fornisci i dettagli dell'host, della porta e del nome utente, quindi scegli la password dal menu a discesa Metodo iniziale e procedi facendo clic sul pulsante di accesso. Apparirà un pop-up che ti chiederà di inserire la tua password SSH. Immettere la password SSH nel campo fornito.
Accedi a SSH utilizzando Bitwise
MySQL Slow Query Logs: una guida dettagliata

2. Accedere al file /etc/mysql/my.cnf utilizzando un editor di testo. Per prima cosa vai su Nuova finestra SFTP dal client Bitwise SSH.

Vai a Nuova finestra SFTP dal client Bitwise SSH.

Ora digita /etc nella barra di ricerca dei file remoti e premi invio.

Attiva MySQL Slow Query Log

Apri il file mysql o MariaDB.

Attiva MySQL Slow Query Log

Ora seleziona my.cnf, fai clic con il pulsante destro del mouse e fai clic su modifica.

Attiva MySQL Slow Query Log

Apparirà un editor di testo. Copia i seguenti comandi, incollali in fondo al file e salvalo.

 slow_query_log = 1 slow-query_log_file = /var/log/mysql-slow.log long_query_time = 2

3. Ora apri il terminale Bitwise ed esegui i seguenti comandi per generare il file /var/log/mysql-slow.log e assegnare l'utente mysql come proprietario.

 touch /var/log/mysql-slow.log chown mysql:mysql /var/log/mysql-slow.log

4. Per riavviare MySQL o MariaDB eseguire il comando seguente.

 /usr/local/cpanel/scripts/restartsrv_mysql

Leggi il registro delle query lente di MySQL

Accedi al file contenente i log delle query lente utilizzando:

/var/log/mysql/mysql-slow.log

All'interno del file di registro, ogni query lenta viene registrata come voce. Queste voci di solito includono dettagli come il timestamp, il tempo di esecuzione della query, il numero di righe esaminate e l'effettiva istruzione SQL.

Invece di leggere direttamente il registro delle query lente, è spesso più vantaggioso utilizzare il comando "mysqldumpslow" per analizzare e riepilogare il contenuto del registro. Puoi eseguire il comando mentre sei connesso come root tramite SSH, come segue:

sudo -i mysqldumpslow /var/log/mysql/mysql-slow.log

Di seguito si otterrà l'output:

Leggi il registro delle query lente di MySQL

Domande frequenti

Qual è lo scopo del comando mysqldumpslow?

Il comando mysqldumpslow ha lo scopo di analizzare e riassumere il contenuto del MySQL Slow Query Log. Ti consente di estrarre informazioni preziose dal file di registro, inclusi dettagli sulle query lente che si verificano più di frequente e sui rispettivi tempi di esecuzione. Eseguendo mysqldumpslow /var/log/mysql/mysql-slow.log , puoi analizzare efficacemente e ottenere approfondimenti dalle query lente in modo efficiente.

Posso utilizzare lo Slow Query Log per il monitoraggio a lungo termine?

Sebbene lo Slow Query Log si dimostri prezioso per la diagnostica a breve termine, abilitarlo per periodi prolungati può comportare la generazione di un notevole volume di dati. Per facilitare il monitoraggio a lungo termine, si raccomanda di esplorare approcci alternativi, come l'utilizzo di strumenti di monitoraggio e soluzioni di analisi delle prestazioni. In questo modo si evita un overflow del registro con voci eccessive e si garantisce una gestione efficace delle prestazioni del database nel tempo.

In che modo lo Slow Query Log può aiutare nella diagnosi dei problemi di prestazioni del database?

Lo Slow Query Log svolge un ruolo fondamentale nella diagnosi dei problemi di prestazioni del database in quanto identifica le query con tempi di esecuzione lenti. Attraverso l'analisi di queste query lente, gli amministratori possono individuare con precisione i colli di bottiglia delle prestazioni e le inefficienze nel database. Grazie a queste informazioni, possono procedere all'ottimizzazione delle query, alla ristrutturazione delle applicazioni o all'implementazione di modifiche essenziali per migliorare in modo significativo le prestazioni complessive del sistema.

Come posso ottimizzare le query in base alle informazioni del registro delle query lente?

Dopo aver identificato le query lente dal registro, hai la possibilità di ottimizzarle attraverso vari metodi. Ciò include l'aggiunta di indici adeguati, la riscrittura di query o la ristrutturazione dello schema del database. Inoltre, l'utilizzo di tecniche di ottimizzazione delle query come EXPLAIN e la profilazione può fornire preziose informazioni e contribuire a miglioramenti significativi nelle prestazioni delle query.

Lo Slow Query Log è applicabile solo per MySQL o può essere utilizzato con altri sistemi di database?

Lo Slow Query Log è progettato esclusivamente per i sistemi di database MySQL e MariaDB. Mentre altri sistemi di gestione del database possono offrire funzionalità comparabili, è importante notare che il formato del registro e i metodi di attivazione possono variare tra i diversi sistemi.