Dizin nedir?
Dizin, tablo veya görünümden satırların alınmasını hızlandıran, veritabanındaki bir veya daha fazla sütundan oluşturulan bir anahtardır. Bu anahtar, Oracle, SQL Server, MySQL vb. Gibi bir Veritabanının anahtar değerlerle ilişkili satırı hızlı bir şekilde bulmasına yardımcı olur.
İki tür Dizin şunlardır:
- Kümelenmiş Dizin
- Kümelenmemiş Dizin
Bu eğitimde şunları öğreneceksiniz:
- Dizin nedir?
- Kümelenmiş dizin nedir?
- Kümelenmemiş dizin nedir?
- Kümelenmiş Dizinin Özelliği
- Kümelenmemiş Dizinlerin Özellikleri
- Kümelenmiş bir indeks örneği
- Kümelenmemiş bir dizin örneği
- Kümelenmiş Dizin ile Kümelenmemiş Dizin arasındaki farklar
- Kümelenmiş Dizinin Avantajları
- Kümelenmemiş dizinin avantajları
- Kümelenmiş Dizinin Dezavantajları
- Kümelenmemiş dizinin dezavantajları
Kümelenmiş dizin nedir?
Küme dizini, tablodaki veri satırlarını anahtar değerlerine göre sıralayan bir dizin türüdür. Veritabanında, tablo başına yalnızca bir kümelenmiş dizin vardır.
Kümelenmiş bir dizin, yalnızca tek bir şekilde sıralanabilen tabloda verilerin depolanma sırasını tanımlar. Dolayısıyla, her tablo için yalnızca tek bir kümelenmiş dizin olabilir. Bir RDBMS'de, genellikle birincil anahtar, söz konusu sütuna dayalı olarak kümelenmiş bir dizin oluşturmanıza olanak tanır.
Kümelenmemiş dizin nedir?
Kümelenmemiş bir dizin, verileri bir konumda ve endeksleri başka bir konumda depolar. Dizin, bu verilerin konumuna işaretçiler içerir. Tek bir tablo, kümelenmemiş dizindeki bir dizin farklı yerlerde depolandığından birçok kümelenmemiş dizine sahip olabilir.
Örneğin, bir kitabın birden fazla indeksi olabilir, biri başlangıçta bir kitap ünitesinin içeriğini gösterirken, ikinci indeks terimlerin indeksini alfabetik sırayla gösterir.
Tablonun sırasız alanında kümelenmemiş bir dizin tanımlanır. Bu tür bir dizin oluşturma yöntemi, birincil anahtar olarak atanmamış anahtarları kullanan sorguların performansını artırmanıza yardımcı olur. Kümelenmemiş bir dizin, bir tablo için benzersiz bir anahtar eklemenize olanak tanır.
ANAHTAR FARK
- Küme dizini, tablodaki veri satırlarını anahtar değerlerine göre sıralayan bir dizin türüdür, oysa Kümelenmemiş dizin verileri bir konumda ve dizinleri başka bir konumda depolar.
- Kümelenmiş dizin, veri sayfalarını dizinin yaprak düğümlerinde saklarken, Kümelenmemiş dizin yöntemi, veri sayfalarını dizinin yaprak düğümlerinde saklamaz.
- Küme dizini ek disk alanı gerektirmezken, Kümelenmemiş dizin ek disk alanı gerektirir.
- Küme endeksi daha hızlı veri erişimi sağlarken, Kümelenmemiş dizin daha yavaştır.
Kümelenmiş Dizinin Özelliği
- Varsayılan ve sıralı veri depolama
- Bir dizin için yalnızca bir veya birden fazla sütun kullanın
- Verileri ve dizini birlikte depolamanıza yardımcı olur
- Parçalanma
- Operasyonlar
- Kümelenmiş dizin taraması ve dizin arama
- Anahtar Arama
Kümelenmemiş Dizinlerin Özellikleri
- Yalnızca anahtar değerlerini saklayın
- Yığın / Kümelenmiş Dizin satırlarına işaretçiler
- İkincil veri erişimine izin verir
- Verilere köprü
- Dizin Tarama ve Dizin Arama İşlemleri
- Bir tablo veya görünüm için kümelenmemiş bir dizin oluşturabilirsiniz.
- Kümelenmemiş dizindeki her dizin satırı, kümelenmemiş anahtar değerini ve bir satır bulucuyu depolar
Kümelenmiş bir indeks örneği
Aşağıdaki örnekte SalesOrderDetailID kümelenmiş dizindir. Verileri almak için örnek sorgu
SELECT CarrierTrackingNumber, UnitPriceFROM SalesDataWHERE SalesOrderDetailID = 6
Kümelenmemiş bir dizin örneği
Aşağıdaki örnekte, OrderQty ve ProductID üzerinde aşağıdaki gibi kümelenmemiş bir dizin oluşturulmuştur.
CREATE INDEX myIndex ONSalesData (ProductID, OrderQty)
Aşağıdaki sorgu, kümelenmiş dizine kıyasla daha hızlı alınacaktır.
SELECT Product ID, OrderQtyFROM SalesDataWHERE ProductID = 714
Kümelenmiş Dizin ile Kümelenmemiş Dizin arasındaki farklar
Parametreler | Kümelenmiş | Kümelenmemiş |
---|---|---|
İçin kullanmak | Kayıtları sıralayabilir ve kümelenmiş indeksi sıraya göre fiziksel olarak hafızada saklayabilirsiniz. | Kümelenmemiş bir dizin, veri satırları için mantıksal bir sıra oluşturmanıza yardımcı olur ve fiziksel veri dosyaları için işaretçiler kullanır. |
Saklama yöntemi | Veri sayfalarını dizinin yaprak düğümlerinde saklamanıza izin verir. | Bu indeksleme yöntemi, veri sayfalarını asla indeksin yaprak düğümlerinde saklamaz. |
Boyut | Kümelenmiş dizinin boyutu oldukça büyük. | Kümelenmemiş dizinin boyutu, kümelenmiş dizine kıyasla küçüktür. |
Veri erişimi | Daha hızlı | Kümelenmiş dizine kıyasla daha yavaş |
Ek disk alanı | Gerekli değil | Dizini ayrı olarak saklamak için gereklidir |
Anahtar türü | Varsayılan Olarak Tablonun Birincil Anahtarları Kümelenmiş Dizindir. | Kompozit anahtar görevi gören tablo üzerinde benzersiz kısıtlama ile kullanılabilir. |
Ana özellik | Kümelenmiş bir dizin, veri alma performansını artırabilir. | Birleşimlerde kullanılan kolonlarda oluşturulmalıdır. |
Kümelenmiş Dizinin Avantajları
Kümelenmiş dizinin avantajları / faydaları şunlardır:
- Kümelenmiş dizinler, max, min, count türü sorgulara göre aralık veya gruplama için ideal bir seçenektir
- Bu tür bir dizinde, bir arama doğrudan verilerdeki belirli bir noktaya gidebilir, böylece oradan sırayla okumaya devam edebilirsiniz.
- Kümelenmiş dizin yöntemi, bir aralığın başlangıcında dizin girişini bulmak için konum mekanizmasını kullanır.
- Bir dizi arama anahtarı değeri istendiğinde aralık aramaları için etkili bir yöntemdir.
- Sayfa aktarımlarını en aza indirmenize ve önbellek isabetlerini en üst düzeye çıkarmanıza yardımcı olur.
Kümelenmemiş dizinin avantajları
Kümelenmemiş dizin kullanmanın avantajları şunlardır:
- Kümelenmemiş bir dizin, verileri veritabanı tablosundan hızlı bir şekilde almanıza yardımcı olur.
- Kümelenmiş dizinle ilişkili genel masraflardan kaçınmanıza yardımcı olur
- Bir tablo, RDBMS'de birden çok kümelenmemiş dizine sahip olabilir. Böylece birden fazla indeks oluşturmak için kullanılabilir.
Kümelenmiş Dizinin Dezavantajları
Kümelenmiş dizini kullanmanın eksileri / sakıncaları şunlardır:
- Sıralı olmayan sırayla çok sayıda kesici uç
- Kümelenmiş bir dizin, veri sayfalarının yanı sıra dizin sayfalarını içeren çok sayıda sabit sayfa bölünmesi oluşturur.
- Eklemeler, güncellemeler ve silmeler için SQL için ekstra çalışma.
- Kümelenmiş dizindeki alanlar değiştirildiğinde, kümelenmiş bir dizinin kayıtları güncellemesi daha uzun sürer.
- Yaprak düğümler çoğunlukla kümelenmiş dizindeki veri sayfalarını içerir.
Kümelenmemiş dizinin dezavantajları
Kümelenmemiş dizini kullanmanın eksileri / sakıncaları şunlardır:
- Kümelenmemiş bir dizin, verileri mantıksal bir sırada depolamanıza yardımcı olur, ancak veri satırlarını fiziksel olarak sıralamanıza izin vermez.
- Kümelenmemiş dizinde arama işlemi maliyetli hale gelir.
- Kümeleme anahtarı her güncellendiğinde, kümeleme anahtarını sakladığı için kümelenmemiş dizinde karşılık gelen bir güncelleme gerekir.