Kümelenmiş Dizin nedir?


15

Kümelenmiş dizin kısa bir açıklamaya ihtiyacım var.

  • Kümelenmiş dizin nedir?
  • Kümelenmiş dizini kullanmak için en iyi uygulamalar nelerdir?

Yeni veriler her zaman tablonun sonuna eklendiğinden, kümelenmiş bir dizindeki tarihleri ​​kullanmak iyi bir fikirdir.
Ralph Winters

1
Muhtemelen, ama her zaman değil.
mrdenny

@mrdenny - bunun ne zaman olmayacağını açıklayabilir misiniz?
Ralph Winters

1
Satırlar sıra dışı giriliyorsa. Tablo daha tipik olarak birincil anahtar tarafından sorgulanacaksa. Birincil anahtar bir INT (veya daha küçük) ise ve tabloda tarih-saat kümelenmiş anahtarın daha büyük ve daha az verimli olacağından çok sayıda kümelenmemiş dizin varsa. Tablo hiçbir zaman tarih sütunu tarafından kullanılmadan sorgulanmayacaksa, kümelenme anahtarı yalnızca kümelenmemiş dizinler kullanılacağı için değerli olmayacaktır.
mrdenny

@mrdenny: tablonun tarih sütunu yoksa (
sonuncunuzun

Yanıtlar:


15

Basit bir ifadeyle ...

Bir telefon rehberi: veri indeks / indeks veridir. Seni aramak için örneğin Rezaei ile başlardım, Amir. Harici aramaya gerek yoktur.

Veritabanı terimleriyle:

Tablo verileri ve kümelenmiş dizin bir ve aynıdır (SQL Server'da, ayrıca InnoDB, Oracle IOT)

En iyi uygulama dar, sayısal, kesinlikle artmaktadır (IDENTITY veya Autonumber sütunu). GUID'ler gibi veri türleri iyi bir fikir değildir

Okunacak bağlantılar (bu cevabı şişirmemek için)

Düzenleyin, en iyi uygulama önerilerimi tam olarak açıklamak için Eric Humphrey'nin yorumundaki bağlantıyı takip edin: Endeksleme Kraliçesi: Kimberly Tripp



1
Ve orada "bağlam olmadan" en iyi uygulama "uygulama sorunu yatıyor. Örneğin, sık aranan büyük bir tablo için birincil arama ölçütleri bir tarih aralığıysa, kümelenmiş dizin için en iyi konumunuz birincil anahtar DEĞİL olarak aranan tarihtir. Tablo ve kümelenmiş dizin birdir ve aynı biraz fazla basitleştirilmiştir. Veriler aslında kümelenmiş dizin tarafından belirlenen sırada depolanır. Diğer şeylerin yanı sıra, bu, kümelenmiş dizinlerin özellikle tam veri kümesini döndüren aralık aramaları için yararlı olduğu anlamına gelir.
Russell Steen

2
@Russell Steen: 1. Bağlantıları dahil ettim 2. OP sormak zorunda kaldım, bu cevabı hangi seviyede sunduğumu düşünün 3. Eric Humphrey bir oluşturma bağlantısı sağladı. Daha deneyimli adamların bildiğimiz ve anladığımız durumları duruma göre inceleyebiliriz, ama burada eğitmek veya bunalmak için mi buradayız ...?
GBN

Ne dediğini duyuyorum. Sorun cevabınızla değil, kendinizden daha az deneyimli insanların bir şeyden alıntı yapmak ve uygulamak etrafında koşması gerçeğinden dolayı, en iyi uygulamanın yazıldığı içeriği ve bağlamı anlamadan "en iyi uygulama" evet, biz eğitmek için buradayız ve doğrudan postada daha fazla bağlam sağlamadan en iyi uygulamayı alıntılamanın bunun bir işi kadar iyi olmadığını savunuyoruz.
Russell Steen

2
Ah, SQL-Serveretiketi fark ettim , dikkate almayın.
ypercubeᵀᴹ

3

Kayıtların fiziksel olarak kümelenmiş dizine sahip olduğunuz alana göre sıralanacağı şekilde verilerin kendisinin bir dizinidir. Bu nedenle tablo başına yalnızca bir Kümelenmiş Dizin olabilir.

Kümelenmemiş Dizin aramalar için hızlı değildir, ancak bu tür dizinlerin çoğunu bir tabloda bulabilirsiniz.


3
Kümelenmemiş dizin söz konusu arama içinse, kümelenmemiş dizinler aramalar için de etkili olabilir.
Russell Steen

@Russell Dizin verilerin gerçek sıralama düzenini zorladığı için daha hızlı olabilmesinin bir yolu yoktur. SQL veya herhangi bir RDBMS'nin ihtiyaç duyduğu bilgileri bulmasının daha kolay / hızlı bir yolu yoktur.
kacalapy

4
Daha hızlı söylemedim. Bir kaplama dizini, diskteki ayrı bir konumda, dizin içindeki seçimde istenen tüm verileri içerir. Dolayısıyla, eşleşen bir kaplama dizinine karşı bir seçim asla tabloya vurmaz.
Russell Steen

2
Kapsamlı bir NCI muhtemelen daha küçük olacaktır, bu da okunacak daha az sayfa ve daha hızlı anlamına gelir.
Martin Smith

Bir tabloda yalnızca bir Kümelenmiş dizinin bulunmasının nedeni fiziksel sıralama değildir, Dizin sayfaları her zaman mantıksal olarak sıralanır ve sayfaların bitişik olarak ayrılması garanti edilmez. Kümelenmiş Dizin tablonun kendisi olduğu ve Kümelenmemiş dizinler tablonun gerekli sütunlara sahip kopyaları olduğu için tablo başına yalnızca bir Kümelenmiş Dizin olabilir.
Manoj Pandey
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.