Forum Veritabanı & SQL MySQL'de Yavaş Sorguları Tespit Etme ve Index Opti...
Veritabanı & SQL

MySQL'de Yavaş Sorguları Tespit Etme ve Index Optimizasyonu

Furkan Demir
4 ay önce • 246 görüntülenme

Veritabanı Darboğazlarını (Bottleneck) Çözme Rehberi

Özellikle forum sistemleri veya anlık kimlik doğrulama yapan Radius (AAA) sunucuları gibi yüksek okuma/yazma (I/O) oranına sahip veritabanlarında, donanımı (RAM/CPU) artırmak sorunu sadece erteler. Asıl çözüm sorgu optimizasyonudur.

Yavaş Sorguları (Slow Queries) Nasıl Buluruz?

MySQL konfigürasyon dosyasında (my.cnf veya mysqld.cnf) slow query log özelliğini açmak ilk adımdır:

slow_query_log = 1 slow_query_log_file = /var/log/mysql/mysql-slow.log long_query_time = 2 Bu ayar, 2 saniyeden uzun süren tüm sorguları log dosyasına yazar. Daha sonra mysqldumpslow aracı ile bu logları analiz edip, en çok tekrar eden ve en uzun süren sorguları tespit edebilirsiniz.

EXPLAIN Komutu ve Index Kullanımı

Sorunlu sorguyu bulduktan sonra başına EXPLAIN yazarak çalıştırın. Çıkan tabloda type sütunu ALL değerini gösteriyorsa, veritabanınız Full Table Scan (Tüm Tabloyu Tarama) yapıyor demektir. Milyonlarca satırlık bir tabloda bu işlem diski felç eder.

Doğru Indexleme: Sıkça `WHERE`, `ORDER BY` veya `JOIN` işlemlerinde kullanılan sütunlara (Örneğin: `user_id`, `created_at`) Index (Anahtar) eklemek arama sürelerini milisaniyelere düşürür.

Composite Index (Birleşik Anahtar): Eğer sorgunuzda birden fazla şart varsa (`WHERE status='active' AND category_id=5`), bu iki sütunu kapsayan tek bir Composite Index oluşturmak performansı katlar. Ancak gereksiz her indexin INSERT ve UPDATE işlemlerini yavaşlatacağını unutmayın.

Veritabanı kilitlenmelerini (Deadlock) çözmek için InnoDb motorunda hangi izolasyon seviyelerini (Isolation Levels) tercih ediyorsunuz?

Beğen 0
Kabul Edilmiş Cevap
Bilgi İşlem Uzmanı 1

Yavaş sorguları tespit ederken EXPLAIN komutundaki "Full Table Scan" uyarısını görmek her zaman hayat kurtarır. İndeksleme şart!

Beğen 4

Cevap yazmak için giriş yapmalısınız.

Giriş Yap