Endeksler, esas olarak bütünlük kısıtlamalarının etkin bir şekilde uygulanması ve sorguların ve işlemlerin verimli bir şekilde işlenmesi için gereklidir. Bunlar masalarda ve görünümlerde oluşturulur. Örneğin, kitaplarda kullanılan ve bir kullanıcının bir kitabın içeriğine hızlıca erişmesini sağlayan endeksler, benzer şekilde SQL'de de endekslere sahibiz.
Karşılaştırma Tablosu
|Karşılaştırma için temel
|Kümelenmiş Dizin
|Kümelenmemiş dizin
|Temel
|Bir tablodaki satırların bütün olarak depolanma sırasını belirler.
|Bir tablodaki satırların depolanma sırasını ayrı fiziksel yapı yardımı ile belirler.
|Tablo başına izin verilen endeks sayısı
|Yalnızca bir kümelenmiş dizin
|Birden çok kümelenmemiş dizin
|Veri erişimi
|Daha hızlı
|Kümelenmiş endekse göre daha yavaş
|Ek disk alanı
|Gerekli değil
|Endeksleri ayrı ayrı depolamak için gereklidir
Kümelenmiş indeks tanımı
Kümelenmiş dizin, temelde bir tablodaki satırları sıralamak için kullanılır. Bir tablo yalnızca bir kümelenmiş dizine sahip olabilir, çünkü tablodaki satırlar yalnızca bir sırayla sıralanabilir, ancak bileşik kümelenmiş bir dizin oluşturmanın yolları vardır. Sütunlar kümelenmiş dizine dahil edilir ve anahtar değerlerin mantıksal veya dizine alınmış sırası, karşılık gelen satırların fiziksel olarak depolanan sırasına aynıdır. Veriler için kümelenmiş bir dizin olmadığında, bir yığın halinde depolanır.
Bir yığın halinde erişen kayıt çok zaman alıcıdır, burada bir tablodaki her giriş istenen verilere erişmek için taranır. Tablo taramasında, daha fazla eşleşme olup olmadığını öğrenmenin bir yolu yoktu. Yani, bu yöntem çok verimsizdi.
Kümelenmiş bir indeks kullanırken, veri erişimi tablonun bir düzende düzenlendiği yerlerde daha hızlı ve sistematiktir. Tablonun sipariş alanında tanımlanmıştır. Arama anahtarı, dosyanın veya tablonun ardışık düzenini belirtir. Bir tablo için birincil anahtar tanımlandığında kümelenmiş bir dizin otomatik olarak oluşturulur.
Kümelenmemiş indeks tanımı
Kümelenmemiş dizin, verileri bir yerde saklar ve dizinleri farklı bir yerde saklar ve dizinde verilerin depolandığı yere işaretçiler bulunur. Bir tablo, kümelenmemiş dizindeki farklı dizinlerde saklandığı için kümelenmemiş birden çok dizine sahip olabilir. Örneğin, bir kitabın başında, biri başında bir kitabın içeriğini akıllıca gösteren, diğerinde ise endeksini alfabetik sırayla gösteren diğerinde bir indeks bulunabilir.
Tablonun sıralanmayan alanında tanımlanır. Kümelenmemiş dizin, birincil anahtarlar dışında anahtar kullanan sorguların performansını artırabilir. Kümelenmemiş bir dizin, tablo için benzersiz bir anahtar tanımlandığında otomatik olarak oluşturulur.
Kümelenmiş ve Kümelenmemiş Dizin Arasındaki Temel Farklılıklar
- Bir tablonun sahip olabileceği kümelenmiş indeks sayısı yalnızca birdir. Oysa bir tablonun kümelenmemiş çoklu indeksleri olabilir.
- Kümelenmemiş bir dizin kümelenmemiş dizinden daha hızlıdır, çünkü kümelenmemiş dizinin temel tabloya geri dönmesi gerekir. Aksine, kümelenmiş endekste durum böyle değil.
- Kümelenmemiş bir dizinde, dizin ek depolama alanı gerektiren ayrı bir yerde saklanır. Buna karşılık, kümelenmiş dizin, temel tablo verilerini dizinin mantıksal düzeniyle aynı fiziksel düzende saklar, bu nedenle ek depolama alanı gerektirmez.
Sonuç
Kümelenmiş dizin, bir tablonun satırlarında belirli bir düzende veri depolamanın bir yoludur. Böylece, istenen veri arandığında, veriyi içeren tek karşılık gelen satır etkilenir ve çıktı olarak temsil edilir. Öte yandan, kümelenmemiş dizin, arandığında temel verilere başvuran fiziksel olarak ayrı bir yapıda bulunur. Kümelenmemiş bir yapı farklı bir sıralama düzenine sahip olabilir.