MySQL Slow Query Loglama

Bu yazımızda MySQL de SLow Query leri naısl yakalarız ve loglarız onu göreceğiz. Çoğu arkadaşlarımız bu konuda özellikle paylaşım yapmamızı istedi ve bu yazımızda da bu konuya fokuslanacağız. Adım adım slow query leri nasıl loglayacağız bunu göreceğiz.

Ana amacımız yüksek I/O yapan , CPU utilizasyonuna neden olan ve index kullanmayan veya yanlış index kullanan sorgular yakalamak.

Sesison bazlı bu loglamayı aktif etmek için ;

show global variables like "log_queries_not_using_indexes";                                 

log_queries_not_using_indexes default ta OFF durumdadır ve yukarıda ki query ile de state ini sorguluyoruz.

Bunu aktif etmek için ise aşağıda ki gibi SET scriptini çalıştırmamız gerekmekte.

mysql> set global log_queries_not_using_indexes=1;                                                                                                                      

Şimdi tekrar sorgulayalım,

Slow Query Özelliğini aktif etmemiz gerek. Bu default ta 0 dır.

mysql> show global variables like "slow_query_log";                                                                                                                     

slow_query_log özelliğinide aşağıda ki SET komutuyla aktif ediyoruz.

mysql> set global slow_query_log=1;                                                                                                                                     

Tekrar değeri sorguladığımızda aktif hale geldiğinizi görmekteyiz.

Şimdi ise slow query lerin nereye loglanacağına dair bilgiyi check edeceğiz.

mysql> show global variables like "slow_query_log_file";

Eğer loglanacağı yeri değiştirmek isterseniz ;

set global slow_query_log_file="/var/lib/mysql/logs/slowquery.log";

Ben değiştirmedim, tmp nin altında toplanmaya devam etmesini istedim.

Log ladığınız Slow Query leri okumak için ;

tail -f /tmp/slowquery.log         

Loglamayı açtıktan sonra kapatmayı unutmayınız !!!

Teşekkürler

Leave a Reply

Your email address will not be published. Required fields are marked *