Sobes.tech
Junior

Veritabanlarında hangi indeks türleri vardır?

sobes.tech yapay zeka

AI'dan gelen yanıt

Veritabanlarındaki temel indeks türleri:

  1. B-ağaç (B+ağaç):

    • En yaygın tür.
    • Geniş bir operasyon yelpazesi için uygundur: aralık arama, tam eşleşme, sıralama.
    • Birçok DBMS'de varsayılan olarak kullanılır (MySQL, PostgreSQL, Oracle).
  2. Hash indeksleri:

    • Bir hash tabanlıdır.
    • Tam eşleşme araması (=) için çok hızlıdır.
    • Aralık araması (BETWEEN, <, >), sıralama (ORDER BY) veya desen araması (LIKE) için uygun değildir.
  3. Tam metin indeksleri:

    • Metin alanlarında (BLOB, TEXT) arama yapmak için tasarlanmıştır.
    • Kelimeleri veya ifadeleri aramaya, eşanlamlıları dikkate almaya ve morfolojik analiz yapmaya olanak tanır.
    • Örnekler: MATCH...AGAINST MySQL/MariaDB'de, tsvector/tsquery PostgreSQL'de.
  4. Uzamsal indeksler (R-ağaç):

    • Coğrafi veya uzamsal verilerin indekslenmesi için kullanılır.
    • Belirli alanlarda veya sınırlar içinde nesneleri verimli şekilde bulmaya olanak tanır.
  5. Bit haritası (Bitmap) indeksleri:

    • Bazı DBMS'lerde kullanılır (örneğin, Oracle, PostgreSQL).
    • Düşük kardinaliteye sahip alanlar için uygundur (az sayıda benzersiz değer, örneğin, cinsiyet, durum: aktif/pasif).
    • AND ve OR işlemleriyle karmaşık sorgular için çok etkilidir.
  6. Kümelenmiş indeks (Clustered):

    • Veri satırlarının fiziksel sırasını etkiler.
    • Bir tabloda yalnızca bir kümelenmiş indeks olabilir.
    • Genellikle birincil anahtar için kullanılır.
  7. Kümelenmemiş indeks (Non-clustered):

    • Satırların fiziksel sırasını belirlemez.
    • Veri satırlarının fiziksel konumuna işaretçiler içerir.
    • Bir tablo birden fazla kümelenmemiş indeks içerebilir.
  8. Kaplayan indeks (Covering):

    • Sorgunun yürütülmesi için gerekli tüm sütunları içeren indeks, SELECT, WHERE ve ORDER BY ifadeleri dahil.
    • DBMS'nin tablo verilerine erişmesine gerek kalmadan sorguyu hızlandırır.
  9. Fonksiyonel indeks (İfade bazlı indeks):

    • Bir veya birkaç sütun üzerindeki fonksiyon veya ifadenin sonucu üzerine kurulur.
    • Hesaplanan değerleri indekslemeye olanak tanır.

İndeks türü seçerken, veri tipi, sorguların sıklığı ve doğası (tam değer arama, aralık, sıralama, tam metin arama vb.) ve sütunun kardinalitesi dikkate alınır.