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.
İlgili Terimler
Veritabanı indeksleme, tabloda aranan satırlara daha hızlı ulaşmak için seçili kolonlarda ek veri yapıları oluşturur.
PostgreSQLPostgreSQL, ilişkisel veri modelini JSON, indeksleme ve genişletilebilirlik özellikleriyle birleştiren açık kaynaklı ACID uyumlu veritabanıdır.
SQLSQL, ilişkisel veritabanlarında tabloları sorgulamak, değiştirmek ve raporlamak için kullanılan standart veri işleme dilidir.