Blogchevron_rightSunucu Yönetimichevron_rightSlow Query Nedir? Kapsamlı Performans ve Çözüm Rehberi

Slow Query Nedir? Kapsamlı Performans ve Çözüm Rehberi

S
Serversium
calendar_today27 Haziran 2026
schedule5 dk okuma
Slow Query Nedir? Kapsamlı Performans ve Çözüm Rehberi

Slow Query Nedir ve Neden Önemlidir?

Slow query (yavaş sorgu), veritabanı sunucusunda normalden daha uzun sürede çalışan SQL sorgularını ifade eder. MySQL ve MariaDB gibi popüler veritabanı sistemlerinde, varsayılan olarak 10 saniyeden uzun süren sorgular "slow query" olarak sınıflandırılır. Bu sorgular, sunucu performansını ciddi şekilde olumsuz etkileyerek uygulama yanıt sürelerinin artmasına ve kullanıcı deneyiminin bozulmasına neden olur.

Araştırmalara göre, web uygulamalarının %80'den fazlası yavaş sorgulardan kaynaklanan performans sorunları yaşar. Veritabanı optimizasyonu yapılmamış sistemlerde, sorgu yanıt süreleri 10 katına kadar çıkabilmektedir.

Slow Query Tespit Yöntemleri

1. MySQL Slow Query Log

MySQL'in yerleşik slow query log özelliği, yavaş sorguların kaydedilmesi için en yaygın kullanılan yöntemdir. Bu özelliği etkinleştirmek için my.cnf veya my.ini dosyasında aşağıdaki ayarları yapmanız gerekir:

slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow-query.log
long_query_time = 2

long_query_time parametresi, sorgunun kaç saniyeden sonra "yavaş" sayılacağını belirler. Production ortamlarında genellikle 2 saniye önerilir.

2. EXPLAIN Komutu

Sorgularınızın nasıl çalıştığını analiz etmek için EXPLAIN komutunu kullanabilirsiniz. Bu komut, sorgunun hangi indeksleri kullandığını, kaç satır tarandığını ve tahmini maliyetini gösterir.

EXPLAIN SELECT * FROM users WHERE email = '[email protected]';

3. Performance Schema ve sys Schema

MySQL 5.6 ve sonraki sürümlerde, Performance Schema ve sys schema araçları daha detaylı analiz imkanı sunar. Özellikle sys.schema_statements_summary_by_digest view'i, tekrarlayan sorguların analizinde çok etkilidir.

Slow Query Analiz Araçları

Birçok araç, slow query'lerin tespiti ve analizinde kullanılır:

  • mysqldumpslow: MySQL ile birlikte gelen, slow query log dosyalarını analiz eden komut satırı aracı
  • pt-query-digest: Percona Toolkit'in bir parçası olan, daha gelişmiş analiz özellikleri sunan araç
  • MySQL Enterprise Monitor: Grafik arayüzü ile real-time izleme imkanı
  • phpMyAdmin: Web tabanlı arayüzden EXPLAIN ve profil oluşturma özellikleri

pt-query-digest Kullanımı

pt-query-digest /var/log/mysql/slow-query.log

Bu komut, log dosyasındaki sorguları analiz ederek en sık çalıştırılan ve en fazla zaman alan sorguları listeler.

Slow Query Çözüm Stratejileri

1. İndeks Optimizasyonu

Yavaş sorguların en yaygın nedeni eksik veya yanlış indekslerdir. İndeks oluştururken dikkat edilmesi gereken noktalar:

  • WHERE clause'da sık kullanılan kolonlara indeks ekleyin
  • JOIN işlemlerinde kullanılan kolonları indeksleyin
  • Composite indeksler oluştururken en ayrımcı kolonu önce kullanın
  • Kullanılmayan indeksleri kaldırın (disk alanı ve yazma performansı için)
CREATE INDEX idx_user_email ON users(email);
CREATE INDEX idx_order_user_date ON orders(user_id, created_at);

2. Sorgu Yeniden Yazma

Bazı durumlarda sorguların yapısını değiştirmek performansı önemli ölçüde artırır:

  • SELECT * yerine sadece gerekli kolonları seçin
  • IN yerine EXISTS veya JOIN kullanmayı deneyin
  • Alt sorguları JOIN'lere dönüştürün
  • Gereksiz ORDER BY ve GROUP BY kullanımından kaçının

3. Veritabanı Yapısı Optimizasyonu

Veritabanı tasarımı, sorgu performansını doğrudan etkiler. Normalizasyon kurallarına uyun ancak aşırı normalizasyondan kaçının. Okuma yoğun uygulamalarda denormalizasyon düşünülebilir. Büyük tablolar için partitionlama kullanmak sorgu performansını artırabilir.

4. Query Cache Ayarları

MySQL 5.6 ve önceki sürümlerde query cache kullanılabilir. Ancak MySQL 8.0'da kaldırılmıştır. Bunun yerine uygulama seviyesinde cache çözümleri (Redis, Memcached) kullanmanızı öneriyoruz. Redis ve Memcached karşılaştırması hakkında daha fazla bilgi edinebilirsiniz.

Slow Query İzleme ve Önleme

1. Continuous Monitoring

Slow query sorunlarını önlemenin en etkili yolu sürekli izlemektir. Aşağıdaki yöntleri uygulayabilirsiniz:

  • Auto-explain veya query profiler kullanarak sorguları otomatik analiz edin
  • Alerting sistemleri kurun (sorgu süresi eşik değerini aştığında uyarı)
  • Performans metriklerini Grafana veya benzeri araçlarla görselleştirin

2. Development Sürecinde Önlem

Code review süreçlerinde sorgu performansını değerlendirin. Query plan analizi yapmadan production'a kod deploy etmeyin.

Slow Query Threshold Değerleri

Farklı uygulama türleri için önerilen threshold değerleri:

Uygulama TürüÖnerilen ThresholdNot
E-ticaret1 saniyeKullanıcı deneyimi kritik
Blog/CMS2 saniyeOrtalama acceptable
Analitik/Dashboard5 saniyeBüyük veri setleri
API Servisleri500msMikro-hizmet mimarisi

Sonuç ve Öneriler

Slow query sorunlarının çözümü sistematik bir yaklaşım gerektirir. İlk adım olarak slow query log'u etkinleştirip sorunlu sorguları tespit edin. EXPLAIN komutu ile sorgu planlarını analiz edin ve indeks eksikliklerini giderin. Sorgu optimizasyonunun yanı sıra, sunucu log analizi yaparak genel sistem sağlığını da takip etmenizi öneriyoruz.

Düzenli izleme ve proaktif optimizasyon, veritabanı performansını uzun vadede sağlıklı tutmanın anahtarıdır. Özellikle yüksek trafikli uygulamalarda, dedicated sunucu kullanarak kaynak tüketimini optimize edebilir ve slow query sorunlarını minimize edebilirsiniz.

library_booksBenzer İçerikler

Cloud Sunucu Nedir? Avantajları ve Detaylı Rehber
Sunucu Yönetimi
calendar_today5 Nisan 2026
schedule5 dk

Cloud Sunucu Nedir? Avantajları ve Detaylı Rehber

Cloud sunucular, dinamik kaynak dağıtımıyla işletmelerin kesintisiz büyümesini sağlar. Avantajlardan karşılaştırmalara tüm detaylar bu rehberde yer alıyor.

S
Serversiumarrow_forward
Linux vs Windows Sunucu: Hangisi Projeye Uygun?
Sunucu Yönetimi
calendar_today6 Nisan 2026
schedule5 dk

Linux vs Windows Sunucu: Hangisi Projeye Uygun?

Linux ve Windows Sunucu arasındaki teknik farkları, maliyet avantajlarını ve proje uyumluluğunu detaylı olarak karşılaştırıyoruz. Yazılım stack'inize en uygun işletim sistemini seçmek için kapsamlı rehberimizle doğru altyapı kararını verin.

S
Serversiumarrow_forward
Plesk Kurulumu - Ubuntu 24 Üzerinde Adım Adım Rehber
Sunucu Yönetimi
calendar_today16 Nisan 2026
schedule5 dk

Plesk Kurulumu - Ubuntu 24 Üzerinde Adım Adım Rehber

Ubuntu 24 üzerinde Plesk kurulumunu adım adım öğrenin. Bu rehberde sistem gereksinimleri, kurulum adımları ve temel yapılandırma ayarlarını bulabilirsiniz.

S
Serversiumarrow_forward