Blogchevron_rightSunucu Yönetimichevron_rightMySQL Slow Query Log: Kapsamlı Optimizasyon Rehberi

MySQL Slow Query Log: Kapsamlı Optimizasyon Rehberi

S
Serversium
calendar_today22 Mayıs 2026
schedule5 dk okuma
MySQL Slow Query Log: Kapsamlı Optimizasyon Rehberi

Slow Query Log Nedir ve Neden Önemlidir?

MySQL slow query log, yürütme süresi belirli bir eşiği aşan sorguları kaydeden bir MySQL diagnostic aracıdır. Varsayılan olarak, 10 saniyeden uzun süren sorgular "yavaş sorgu" olarak işaretlenir. Bu log dosyası, özel sunucu altyapılarında veritabanı performansını optimize etmek için kritik öneme sahiptir.

Percona'nın 2023 veritabanı raporuna göre, yavaş sorgular üretim ortamlarında performans düşüşlerinin %67'sinden sorumludur. Bu nedenle slow query log analizi, her MySQL yöneticisinin temel yetkinliklerinden biri olmalıdır.

Slow Query Log'u Aktif Hale Getirme

MySQL yapılandırma dosyasında (my.cnf veya my.ini) aşağıdaki parametreleri ayarlamanız gerekir:

[mysqld]
slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow-query.log
long_query_time = 2
log_queries_not_using_indexes = 1

Parametre Açıklamaları:

  • slow_query_log: Loglamayı aktif/pasif yapar (1=Açık, 0=Kapalı)
  • slow_query_log_file: Log dosyasının yolunu belirtir
  • long_query_time: Sorgunun "yavaş" sayılacağı süre eşiği (saniye)
  • log_queries_not_using_indexes: İndeks kullanmayan sorguları da logla

Parametre Değerlerini Dinamik Değiştirme

MySQL 5.6 ve sonraki sürümlerde, MySQL yeniden başlatılmadan da bu değerleri değiştirebilirsiniz:

SET GLOBAL slow_query_log = 'ON';
SET GLOBAL long_query_time = 1;
SET GLOBAL slow_query_log_file = '/var/log/mysql/slow-query.log';

Slow Query Log Formatı ve Yapısı

Modern MySQL sürümlerinde slow query log, aşağıdaki bilgileri içerir:

  • Sorgunun başlangıç zamanı ve süresi
  • Sorguyu çalıştıran kullanıcı ve host
  • Sorgu satırı ve satır numarası
  • Tarama yapılan satır sayısı
  • İndeks kullanım durumu

Örnek bir log çıktısı:

# Time: 2024-01-15T10:23:45.123456Z
# User@Host: root[root] @ localhost []
# Query_time: 2.345678  Lock_time: 0.000123 Rows_sent: 100  Rows_examined: 50000
SELECT * FROM orders WHERE order_date < '2024-01-01';

Sorgu Analizi İçin Araçlar

1. mysqldumpslow

MySQL ile birlikte gelen yerleşik bir araçtır. Sık tekrarlanan sorguları gruplandırarak analiz eder:

mysqldumpslow -s t /var/log/mysql/slow-query.log

Önemli parametreler:

  • -s t: Sorgu süresine göre sırala
  • -s c: Sıklığa göre sırala
  • -s l: Lock time'a göre sırala
  • -t 10: İlk 10 sonucu göster
  • -g "pattern": Desene göre filtrele

2. pt-query-digest (Percona Toolkit)

Percona Toolkit'in bu aracı, slow query log'larını detaylı analiz eder ve kapsamlı raporlar sunar:

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

Bu araç, sorguları profil halinde gruplandırarak en kritik performans sorunlarını ön plana çıkarır.

3. MySQL Workbench

Grafiksel arayüzü tercih edenler için MySQL Workbench, slow query log görselleştirme ve analiz imkanı sunar.

慢查询优化技巧

1. EXPLAIN Kullanımı

Sorgu planını analiz etmek için en önemli araç EXPLAIN komutudur:

EXPLAIN SELECT * FROM orders WHERE customer_id = 123;

Önemli çıktı alanları:

  • type: MySQL'un tabloya nasıl eriştiğini gösterir (ALL = tam tarama, index = indeks tarama)
  • possible_keys: Kullanılabilecek indeksler
  • key: Kullanılan gerçek indeks
  • rows: Taramanın kaç satır gerektirdiği
  • Extra: Ek bilgiler (Using filesort, Using temporary gibi)

2. İndeks Stratejileri

Performans için etkili indeksleme kritik öneme sahiptir:

İndeks Türü Kullanım Senaryosu Örnek
B-Tree Eşitlik ve aralık sorguları WHERE status = 'active'
Composite Çoklu kolon filtreleme WHERE category_id = 1 AND price > 100
Partial Büyük TEXT alanları INDEX idx_desc(Description(100))

3. Sorgu Yeniden Yazma

İndeksleme tek başına yeterli değilse, sorgularınızı optimize etmeniz gerekebilir:

  • SELECT * yerine gerekli kolonları seçin
  • JOIN koşullarını doğru tutun
  • Subquery yerine JOIN kullanın
  • LIMIT kullanarak sonuç sayısını sınırlayın
  • OR yerine IN veya UNION kullanın

Performans İzleme ve Sürekli Optimizasyon

Veritabanı performansını sürekli izlemek için otomatik izleme araçları kullanmanızı öneriyoruz. Ayrıca, sorgu önbellekleri ve Redis/Memcached gibi araçları kullanarak sık tekrarlanan sorguları hızlandırabilirsiniz.

Query Performance Schema

MySQL 5.6 ve üzeri sürümlerde Performance Schema, sorgu performansını gerçek zamanlı izleme imkanı sunar:

SELECT * FROM performance_schema.events_statements_summary_by_digest 
ORDER BY sum_timer_wait DESC LIMIT 10;

Optimizasyon Kontrol Listesi

  1. Slow query log'u aktif edin ve uzun_query_time'ı uygun ayarlayın
  2. Düzenli olarak log dosyalarını analiz edin
  3. EXPLAIN ile sorgu planlarını inceleyin
  4. Missing indexes uyarılarına dikkat edin
  5. Covering index'ler oluşturun
  6. Sorgu önbellek stratejileri uygulayın
  7. Periyodik olarak veritabanı bakımı yapın

Sonuç

MySQL slow query log analizi, veritabanı performans optimizasyonunun temel taşıdır. Düzenli analiz ve iyileştirme, uygulama yanıt sürelerini önemli ölçüde azaltır ve kullanıcı deneyimini iyileştirir. unutmayın: en iyi optimizasyon, sorun oluşmadan önce önlem almaktır.

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