Jurnalele MySQL Slow Query: Ghid de detaliu 2023

Publicat: 2023-08-01
Distribuie pe profilurile sociale.

Articolul este o resursă concisă, dar cuprinzătoare, concepută pentru a oferi o înțelegere clară a jurnalelor de interogări lente MySQL și a modului de interpretare eficientă a acestora. Acest ghid își propune să dezlege complexitățile din jurul jurnalelor de interogări lente, permițând utilizatorilor să identifice și să abordeze blocajele de performanță și potențialele probleme ale bazei de date.

Activarea jurnalului de interogări lent pentru MySQL se dovedește a fi un atu valoros în diagnosticarea provocărilor de performanță și eficiență care vă pot afecta serverul. Prin identificarea interogărilor cu timpi de execuție deosebit de lenți, obțineți capacitatea de a le aborda în mod eficient fie prin restructurarea aplicației responsabile de interogări, fie prin optimizarea interogărilor în sine. Această abordare proactivă asigură că interogările dumneavoastră sunt construite cu o eficiență optimă, conducând în cele din urmă la îmbunătățirea performanței generale a sistemului.

Cuprins

Introducere în MySQL

MySQL este unul dintre cele mai populare sisteme de gestionare a bazelor de date relaționale open-source, utilizat pe scară largă pentru stocarea, gestionarea și preluarea datelor pentru diverse aplicații web și software. Ca și în cazul oricărui sistem de baze de date sofisticat, MySQL oferă un mecanism robust de înregistrare pentru a înregistra informații esențiale despre activitățile și performanța sa. Aceste jurnale joacă un rol crucial în monitorizarea și depanarea comportamentului bazei de date și pot oferi informații valoroase asupra sănătății și eficienței sistemului.

Tipuri de jurnale generate de MySQL

Există mai multe tipuri de jurnale generate de MySQL, fiecare având un scop specific:

  1. Jurnal general de interogare : Acest jurnal înregistrează fiecare interogare SQL executată pe server, indiferent de sursa acestuia. Este un instrument puternic de depanare și înțelegere a secvenței de interogări executate, dar poate genera și o cantitate mare de date, făcându-l potrivit în principal pentru diagnosticarea pe termen scurt.
  2. Jurnal de erori: Jurnalul de erori captează orice erori întâlnite în timpul funcționării serverului MySQL. Aceste erori pot include probleme cu pornirea, oprirea sau alte erori critice care pot afecta funcționalitatea bazei de date. Monitorizarea jurnalului de erori ajută administratorii să identifice și să rezolve rapid problemele potențiale.
  3. Jurnal de interogări lent: După cum sa menționat mai devreme, jurnalul de interogări lent înregistrează interogări care durează mai mult decât un prag predefinit pentru a fi executate. Acest jurnal este esențial în identificarea blocajelor de performanță și a interogărilor ineficiente, permițând administratorilor să optimizeze și să îmbunătățească performanța generală a bazei de date.
  4. Jurnal binar: Jurnalul binar conține o înregistrare a tuturor modificărilor de date (inserări, actualizări și ștergeri) făcute în baza de date. Este folosit în scopuri de replicare, permițând sincronizarea datelor pe mai multe servere MySQL.
  5. Jurnal de releu: Jurnalul de releu este specific replicării MySQL. Stochează datele primite de la serverul master înainte de a fi executate pe serverul slave într-o configurare de replicare.

Cum se activează jurnalul de interogări lenți MySQL?

Mai jos sunt pașii pentru a activa jurnalul de interogări lent pentru MySQL sau MariaDB.

  1. Mai întâi, trebuie să vă conectați la SSH folosind Bitwise. Deschideți Bitwise SSH Client. Furnizați detaliile despre gazdă, portul și numele de utilizator, apoi alegeți parola din meniul drop-down Metodă inițială și continuați făcând clic pe butonul de conectare. Va apărea o fereastră pop-up, care vă va cere să introduceți parola SSH. Introduceți parola SSH în câmpul furnizat.
Conectați-vă la SSH folosind Bitwise
Jurnalele de interogări lente MySQL: un ghid detaliat

2. Accesați fișierul /etc/mysql/my.cnf folosind un editor de text. Pentru aceasta, mergeți mai întâi la Noua fereastră SFTP din Bitwise SSH Client.

Accesați noua fereastră SFTP din Bitwise SSH Client.

Acum, tastați /etc în bara de căutare a fișierelor de la distanță și apăsați Enter.

Activați MySQL Slow Query Log

Deschideți fișierul mysql sau MariaDB.

Activați MySQL Slow Query Log

Acum selectați my.cnf, faceți clic dreapta și faceți clic pe Editare.

Activați MySQL Slow Query Log

Va apărea un editor de text. Copiați următoarele comenzi, lipiți-le în partea de jos a fișierului și salvați-l.

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

3. Acum deschideți terminalul Bitwise și rulați următoarele comenzi pentru a genera fișierul /var/log/mysql-slow.log și a atribui utilizatorul mysql ca proprietar.

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

4. Pentru a reporni MySQL sau MariaDB, executați comanda de mai jos.

 /usr/local/cpanel/scripts/restartsrv_mysql

Citiți jurnalul de interogare lentă MySQL

Accesați fișierul care conține jurnalele de interogări lente folosind:

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

În interiorul fișierului jurnal, fiecare interogare lentă este înregistrată ca o intrare. Aceste intrări includ de obicei detalii precum marcajul de timp, timpul de execuție al interogării, numărul de rânduri examinate și instrucțiunea SQL reală.

În loc să citiți direct jurnalul de interogări lente, este adesea mai benefic să utilizați comanda „mysqldumpslow” pentru a analiza și a rezuma conținutul jurnalului. Puteți executa comanda în timp ce sunteți autentificat ca root prin SSH, după cum urmează:

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

Ieșirea de mai jos va fi obținută:

Citiți jurnalul de interogare lentă MySQL

Întrebări frecvente

Care este scopul comenzii mysqldumpslow?

Comanda mysqldumpslow are scopul de a analiza și rezuma conținutul jurnalului de interogare lentă MySQL. Vă permite să extrageți informații valoroase din fișierul jurnal, inclusiv detalii despre interogările lente care apar cel mai frecvent și despre timpul de execuție respectiv. Prin executarea mysqldumpslow /var/log/mysql/mysql-slow.log , puteți analiza eficient și obține informații din interogările lente într-un mod eficient.

Pot folosi jurnalul de interogări lent pentru monitorizare pe termen lung?

Deși jurnalul de interogare lentă se dovedește valoros pentru diagnosticarea pe termen scurt, activarea acestuia pentru perioade lungi poate duce la generarea unui volum substanțial de date. Pentru a facilita monitorizarea pe termen lung, se recomandă explorarea unor abordări alternative, cum ar fi utilizarea instrumentelor de monitorizare și a soluțiilor de analiză a performanței. Acest lucru ajută la prevenirea depășirii jurnalului cu intrări excesive și asigură gestionarea eficientă a performanței bazei de date în timp.

Cum poate ajuta Jurnalul de interogări lent la diagnosticarea problemelor de performanță a bazei de date?

Jurnalul de interogări lenți joacă un rol vital în diagnosticarea problemelor de performanță a bazei de date, deoarece identifică interogările cu timpi de execuție lenți. Prin analiza acestor interogări lente, administratorii pot localiza cu precizie blocajele de performanță și ineficiențele din baza de date. Înarmați cu aceste informații, aceștia pot continua să optimizeze interogările, să restructureze aplicațiile sau să implementeze modificări esențiale pentru a îmbunătăți semnificativ performanța generală a sistemului.

Cum pot optimiza interogările pe baza informațiilor din jurnalul de interogări lente?

După identificarea interogărilor lente din jurnal, aveți posibilitatea de a le optimiza prin diverse metode. Aceasta include adăugarea de indecși adecvați, rescrierea interogărilor sau restructurarea schemei bazei de date. În plus, utilizarea tehnicilor de optimizare a interogărilor, cum ar fi EXPLAIN și profilare, poate oferi informații valoroase și poate contribui la îmbunătățiri semnificative ale performanței interogărilor.

Slow Query Log este aplicabil numai pentru MySQL sau poate fi folosit cu alte sisteme de baze de date?

Jurnalul de interogare lentă este conceput exclusiv pentru sistemele de baze de date MySQL și MariaDB. În timp ce alte sisteme de gestionare a bazelor de date pot oferi caracteristici comparabile, este important să rețineți că formatul jurnalului și metodele de activare pot varia între sisteme diferite.