Junior
Veritabanlarında hangi indeks türleri vardır?
sobes.tech yapay zeka
AI'dan gelen yanıt
Veritabanlarındaki temel indeks türleri:
-
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).
-
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.
-
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...AGAINSTMySQL/MariaDB'de,tsvector/tsqueryPostgreSQL'de.
-
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.
-
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).
ANDveORişlemleriyle karmaşık sorgular için çok etkilidir.
-
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.
-
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.
-
Kaplayan indeks (Covering):
- Sorgunun yürütülmesi için gerekli tüm sütunları içeren indeks,
SELECT,WHEREveORDER BYifadeleri dahil. - DBMS'nin tablo verilerine erişmesine gerek kalmadan sorguyu hızlandırır.
- Sorgunun yürütülmesi için gerekli tüm sütunları içeren indeks,
-
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.