Sitenin yavaşladığı anlarda çoğu zaman birkaç sorgu veritabanını yorar. Yavaş sorgu günlüğü, belirlediğiniz süreyi aşan her sorguyu kaydeder.
1. Günlüğü hemen açın
SET GLOBAL slow_query_log = 1;
SET GLOBAL slow_query_log_file = '/var/log/mysql/mariadb-slow.log';
SET GLOBAL long_query_time = 2;
Bu ayar servis yeniden başlayana kadar geçerlidir ve long_query_time değişikliği yalnızca yeni bağlantılara uygulanır.
2. Kalıcı yapın
/etc/mysql/mariadb.conf.d/50-server.cnf dosyasının [mysqld] bölümüne ekleyin:
slow_query_log = 1
slow_query_log_file = /var/log/mysql/mariadb-slow.log
long_query_time = 2
3. Günlüğü analiz edin
sudo mysqldumpslow -s t -t 10 /var/log/mysql/mariadb-slow.log
Komut, toplam süreye göre en yavaş on sorgu kalıbını listeler.
4. Sorguyu EXPLAIN ile inceleyin
EXPLAIN SELECT * FROM siparisler WHERE musteri_id = 42;
type sütunu ALL ise tablo baştan sona taranıyordur; ilgili sütuna indeks eklemek çoğu zaman süreyi saniyelerden milisaniyelere indirir.
Not: Çok yüklü sunucularda
long_query_time değerini çok düşük tutmayın; günlük dosyası hızla büyür. Bağlantı sınırı sorunları için “Too many connections” rehberine bakın.Adımlarda takıldınız mı?
Teknik ekibimiz sunucunuza bakıp sorunu birlikte çözebilir.
WhatsApp ile yazın Destek talebi açın