İndeks Ne Demek?
İngilizce: Index
Yayın: · Son güncelleme:
İndeks Ne Demek? Kısaca
İndeks, veritabanında belirli sütunlardaki değerleri sıralı bir yapıda tutarak aranan kayıtların tüm tabloyu taramadan hızlıca bulunmasını sağlayan yardımcı veri yapısıdır. Kitabın sonundaki dizine benzer.

İndeks ne demek?
Veritabanı bağlamında indeks, bir tablodaki bir veya birkaç sütun için oluşturulan arama kısayoludur. İngilizcedeki index karşılığıdır ve Türkçe kaynaklarda "dizin" olarak da geçer. İndeks, verinin kopyasını değil, değerlerin sıralı bir listesini ve her değerin tabloda nerede durduğunu tutar.
En iyi benzetme kitap dizinidir. "Enflasyon" kelimesinin geçtiği sayfaları bulmak için 400 sayfayı baştan okumazsınız, arkadaki dizine bakar ve doğrudan 212. sayfaya gidersiniz.
Sorguyu nasıl hızlandırır?
İndeks yoksa veritabanı aranan değeri bulmak için tabloyu satır satır okur; buna tam tablo taraması denir. Çoğu ilişkisel veritabanı indeksleri B-ağacı (B-tree) yapısında saklar. Bu yapı sayesinde milyonlarca satır arasında bile birkaç adımda doğru kayda ulaşılır.
Varsayımsal bir örnek: 2 milyon satırlık bir müşteri tablosunda e-posta adresine göre arama yavaş çalışıyor. E-posta sütununa indeks eklemek için şu komut yeterlidir:
CREATE INDEX idx_musteri_eposta ON musteriler (eposta);
Nelere dikkat etmeli?
İndeks bedava değildir. Her yeni kayıt, güncelleme ya da silme işleminde indeksin de güncellenmesi gerekir, bu yüzden yazma işlemleri yavaşlar ve disk alanı artar. Her sütuna indeks koymak yerine WHERE, JOIN ve ORDER BY ifadelerinde sık geçen sütunları seçin.
Hangi sorgunun indeks kullandığını görmek için EXPLAIN komutunu çalıştırın. Bu çıktı, tahmin yürütmek yerine gerçek darboğazı göstermenin en hızlı yoludur.
Sıkça Sorulan Sorular
Veritabanında indeks nedir, her tabloda olur mu?
İndeks, aramayı hızlandıran yardımcı yapıdır. Birincil anahtar tanımlanan her tabloda veritabanı otomatik olarak bir indeks oluşturur; diğer sütunlar için indeksi siz eklersiniz.
Çok fazla indeks zararlı mı?
Evet, olabilir. Her indeks ekleme ve güncelleme işlemlerine ek yük getirir ve disk alanı kaplar. Kullanılmayan indeksleri düzenli aralıklarla tespit edip kaldırmak iyi bir bakım alışkanlığıdır.