İçeriğe geç
parazade

İ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 nedir?
İçindekiler
  1. İndeks ne demek?
  2. Sorguyu nasıl hızlandırır?
  3. Nelere dikkat etmeli?

İ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.

İlgili terimler

Birincil Anahtar(Primary Key)Birincil anahtar (primary key), bir veritabanı tablosundaki her satırı benzersiz biçimde tanımlayan sütun ya da sütunlar grubudur. Değeri boş bırakılamaz ve aynı tabloda iki kez kullanılamaz.Sorgu(Query)Sorgu (query), bir veritabanından belirli verileri getirmek, yeni veri eklemek, mevcut veriyi güncellemek ya da silmek için gönderilen komuttur. İlişkisel veritabanlarında sorgular genellikle SQL diliyle yazılır.Veritabanı Tablosu(Database Table)Veritabanı tablosu, ilişkisel bir veritabanında aynı türdeki kayıtları satırlar ve sütunlar hâlinde saklayan temel yapıdır. Her satır bir kaydı, her sütun o kayda ait bir özelliği temsil eder.Darboğaz(Bottleneck)Darboğaz (bottleneck), bir sistemde kapasitesi en düşük olduğu için tüm sürecin hızını sınırlayan bileşen ya da adımdır. Yazılımda yavaş bir veritabanı sorgusu, yetersiz bellek ya da dar bir ağ bağlantısı darboğaz oluşturabilir.Veritabanı(Database)Veritabanı, verilerin düzenli, aranabilir ve güncellenebilir biçimde saklandığı elektronik kayıt sistemidir. Müşteri listeleri, siparişler ve ürün bilgileri gibi veriler veritabanlarında tutulur.Enflasyon(Inflation)Enflasyon, mal ve hizmet fiyatlarının genel düzeyinin belirli bir dönem boyunca sürekli artmasıdır. Enflasyon yükseldikçe aynı parayla daha az şey alınır; yani paranın satın alma gücü düşer.İlişkisel Veritabanı(Relational Database)İlişkisel veritabanı, verileri satır ve sütunlardan oluşan tablolarda saklayan ve tabloları ortak anahtarlarla birbirine bağlayan veritabanı türüdür. Veriler SQL diliyle sorgulanır ve güncellenir.JOINJOIN, SQL'de iki veya daha fazla tablodaki satırları ortak bir sütun üzerinden eşleştirip tek bir sonuç tablosunda birleştiren ifadedir. Genellikle birincil anahtar ile yabancı anahtar eşleştirilerek kullanılır.