Teknoloji ipuçlarını kendin uygula
İçerik
Son yazılar
Biz kimiz
Yazılım Atölyesi, adım adım teknoloji rehberleriyle kendi başına öğrenip uygulama yapmak isteyenlere yardımcı olur. Pratik ipuçları, araç önerileri ve çözümler bulacaksınız.

PostgreSQL İndeksleme Stratejileri

Sorgu yavaşladığında ilk şüpheli genelde indekstir. Ya yok, ya yanlış türde, ya da hiç kullanılmıyor. PostgreSQL indeks yapısı zengindir; B-tree dışında da seçenekler var. Doğru olanı seçmek, sorgu süresini saniyelerden milisaniyelere indirebilir.

Aşağıdaki adımları kendi veritabanınızda deneyerek ilerleyin. Test için gerçek verinin bir kopyasını kullanın; boş tabloda indeks ölçmek yanıltır.

Kural: Önce ölç, sonra indeksle. Tahminle eklenen indeks, disk ve yazma maliyeti dışında bir şey getirmez.

İndeks Türlerini Tanımak ve Doğru Olanı Seçmek

PostgreSQL'de birden fazla indeks yöntemi vardır. Her biri farklı operatörleri destekler. Türü sorgunuzun WHERE koşuluna göre seçin.

B-tree: Varsayılan ve Çoğu Zaman Yeterli

Pratik: filtrede en çok kullanılan ve seçiciliği yüksek sütunu başa alın.

GIN: Metin Arama, JSONB ve Diziler

BRIN, Hash ve GiST

SenaryoTür
id = 42B-tree
tarih aralığı, milyarlarca satırBRIN
JSONB anahtar sorgusuGIN
%kelime% aramaGIN + pg_trgm
aralık çakışmasıGiST

Uygulama, Doğrulama ve Bakım

İndeks eklemek işin yarısı. Kullanıldığını kanıtlamak ve maliyetini takip etmek gerekir.

EXPLAIN ANALYZE ile Doğrulama

  1. Sorgunuzu EXPLAIN (ANALYZE, BUFFERS) ile çalıştırın.
  2. Çıktıda Seq Scan görüyorsanız ve tablo büyükse, indeks fırsatı var.
  3. Index Scan veya Index Only Scan hedefiniz. İkincisi en hızlısıdır; gereken tüm sütunlar indekste olduğunda oluşur.
  4. rows tahmini ile gerçek sayı arasında büyük fark varsa istatistikler bayattır. ANALYZE tablo_adi; çalıştırın.
  5. Aynı sorguyu iki kez çalıştırıp ikinci ölçümü not edin. İlk çalıştırmada önbellek soğuktur.

Kapsayıcı indeks denemesi yapın: CREATE INDEX ... (user_id) INCLUDE (status). Böylece tabloya gitmeden yanıt üretilebilir.

Kısmi ve İfade İndeksleri

Bakım ve Gereksiz İndeksleri Temizleme

Bir uyarı: unique kısıt eklediğinizde arka planda indeks de oluşur. Aynı sütun için ayrıca indeks açmayın.

Kapanış

Sürecin özeti kısa:

  1. Yavaş sorguyu tespit et.
  2. EXPLAIN ANALYZE ile plana bak.
  3. Koşula uygun indeks türünü seç.
  4. © 2026 Yazılım Atölyesi