DBAtlas · Veritabanı operasyon atlası

Slow log'u kısa süreli tam yakala ve pt-query-digest ile analiz et

MySQLPerformans

Komut

-- Gecici tam yakalama (ornegin 10 dakika); yalniz yeni baglantilar etkilenir
SET GLOBAL slow_query_log_file = '/var/lib/mysql/slow.log';
SET GLOBAL log_slow_extra = ON;
SET GLOBAL long_query_time = 0;
SET GLOBAL slow_query_log = ON;
-- ... sonra normal esige don
SET GLOBAL long_query_time = 1;

# Shell: toplam sureye gore ilk 10 sorgu
pt-query-digest --limit=10 --order-by=Query_time:sum --noversion-check /var/lib/mysql/slow.log > /tmp/digest.txt
pt-query-digest --since='2026-10-08 09:00:00' --until='2026-10-08 10:00:00' --filter '$event->{db} && $event->{db} eq "shop"' --report-format=profile --noversion-check /var/lib/mysql/slow.log

Ne yapar?

long_query_time=0 ile kısa bir pencerede tüm sorguları yakalar; pt-query-digest bunları fingerprint'e göre gruplayıp toplam / ortalama / p95 süre, taranan satır ve örnek sorguyla sıralı rapor üretir.

Ne zaman kullanılır?

performance_schema digest'in yetmediği durumlarda: tam sorgu metni ve gerçek parametrelerle analiz, deploy öncesi / sonrası karşılaştırma, başka sunucuda offline inceleme.

Dikkat

long_query_time oturum başında global'den kopyalanır; connection pool'daki mevcut bağlantılar yeni eşiği yeniden bağlanana kadar görmez. long_query_time=0 yoğun sunucuda saniyede binlerce satır yazar; disk alanını ve IO'yu izle, pencereyi kısa tut ve sonra mutlaka geri al. Analiz için dosyayı production dışına kopyala. pt-query-digest'i çalıştıran kullanıcının dosyayı okuma izni olmalı (dosya 640, mysql:mysql).

DBAtlas'ta aç →

İlgili