PostgreSQL B-Tree İndeksleme ve Veritabanı Sorgu Hızlandırma — İnteraktif Sistem Modeli
PostgreSQL & Prismaİzometrik modeli inceleyin veya sekmeler arasında geçiş yaparak farklı mimarileri keşfedin.
Veritabanında kayıt sayısı yüz binleri aştığında, indeks olmayan tablolarda yapılan her SELECT sorgusu tam tablo taraması (Seq Scan) tetikler. Bu durum disk I/O yükünü fırlatır ve tüm sistemi kilitler.
B-Tree (Balanced Tree) Mimarisi Nasıl Çalışır?
PostgreSQL varsayılan olarak B-Tree indeksleme kullanır. B-Tree, verileri sıralı ve dengeli bir ağaç yapısında tutarak arama karmaşıklığını O(N) seviyesinden O(log N) seviyesine indirir. Milyonlarca satır arasından aranan tek bir kayıt 3-4 disk okumasıyla tespit edilir.
Bileşik İndekslerde Sıralama Kuralı
Birden fazla sütun içeren bileşik indekslerde (composite index) sütunların yazılış sırası hayati önem taşır. Eşitlik (equality) koşulu olan sütunlar en başa, aralık (range) veya sıralama (order by) koşulları ise sonraya konmalıdır.
EXPLAIN ANALYZE ile İcra Planı Okuma
Sorgular optimize edilirken tahminlere değil, EXPLAIN ANALYZE çıktısındaki gerçek süreler ve index scan türlerine bakılmalıdır. Doğru indeksle 1200ms süren ağır bir raporlama sorgusu 4ms düzeyine düşürülebilir.