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əşdirirslow-query-log-file
- ləng işləyən sorğular üçün loq-faylının yerini təyin edirlong_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ırslow-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
Şərh yazmaq üçün hesabınıza daxil olun.