MySQL-də qeyri-effektiv sorğuların aşkar edilməsi

Böyükhəcmli layihələrin ən çətin tərəflərindən biri kodun optimallaşdırılmasıdır. Verilənlər bazasının məhsuldarlığının optimallaşdırılması bu baxımdan istisna deyil.

Hər bir verilənlər bazasının idarəetmə sistemi (VBİS) problemli sorğuların axtarılıb tapılması üçün öz metoduna malikdir. MySQL-də problemli sorğuların axtarılıb tapılması üçün ən sadə üsul ləng işləyən sorğular jurnalından istifadədir. Ləng işləyən sorğular jurnalını aktivləşdirmək üçün MySQL-in konfiqurasiya faylını - my.cnf açırıq:

sudo nano /etc/mysql/my.cnf

Və aşağıdakı parametrləri əlavə (və ya redaktə) edirik:

slow-query-log      = 1
slow-query-log-file = /var/log/mysql/mysql-slow.log
long_query_time     = 1
log-queries-not-using-indexes
  • slow-query-log - ləng işləyən sorğular jurnalını aktivləşdirir
  • slow-query-log-file - ləng işləyən sorğular üçün loq-faylının yerini təyin edir
  • long_query_time - sorğunun icrası üçün minimal vaxtı (saniyə) təyin edir, bu müddəti ötən sorğu ləng hesab edilir və loq faylında qeydə alınır
  • slow-query-log-file - indeksdən istifadə etməyən bütün sorğular loq-faylında qeydə alınır

Parametrləri yadda saxladıqdan sonra MySQL-serveri yenidən yükləyirik (restart):

systemctl restart mysql

Bundan sonra hər dəfə sorğu long_query_time parametrində göstərilən müddətdən gec icra olunduqda /var/log/mysql/mysql-slow.log loq-faylında qeydə alınır. tail utilitinin köməyilə loq-faylını real vaxt rejimində baxmaq mümkündür:

tail -f /var/log/mysql/mysql-slow.log
0

Şərh yazmaq üçün hesabınıza daxil olun.