Veritabanı İndeksi Nedir?

İngilizce: Database Index

Veritabanı indeksi, seçili sütunları ayrı veri yapısında tutarak sorguların tabloyu baştan sona taramasını azaltır.

Veritabanı İndeksi Nedir?

Veritabanı indeksi, bir tablodaki belirli sütun değerlerini hızlı arama için ayrı bir veri yapısında tutar. Kitap sonundaki dizin gibi düşünülebilir: Aranan konuya ulaşmak için tüm kitabı okumak yerine dizinden ilgili sayfaya gidilir.

İndeksler çoğunlukla B-tree yapılarıyla uygulanır; bazı veritabanlarında hash, GiST, GIN veya full-text indeks türleri de bulunur. WHERE, JOIN, ORDER BY ve benzersizlik kontrolü gibi işlemlerde doğru indeks büyük fark yaratabilir. Örneğin users.email üzerinde benzersiz indeks, hem hızlı arama sağlar hem aynı e-posta ile ikinci kullanıcı açılmasını engeller.

Maliyeti Nedir?

İndeksler okuma performansını artırırken yazma maliyeti oluşturur. INSERT, UPDATE ve DELETE işlemlerinde tabloyla birlikte indekslerin de güncellenmesi gerekir. Ayrıca indeksler disk alanı tüketir ve yanlış seçilirse sorgu planlayıcı tarafından kullanılmayabilir.

Pratik Kullanım

Yavaş sorgu analizi yapılırken önce sorgunun filtrelediği, sıraladığı ve birleştirdiği alanlara bakılır. Kompozit indekslerde sütun sırası önemlidir; her sütuna ayrı indeks eklemek her zaman çözüm değildir. SQL sorguları ve PostgreSQL EXPLAIN çıktıları birlikte incelenerek hangi indeksin gerçekten kullanıldığı doğrulanmalıdır.