SORU
26 NİSAN 2012, PERŞEMBE


neden MongoDB dizin önemli yönü?

docs alıntı:

Dizin oluştururken, numarasını bir anahtar ile ilişkili belirtir her zaman 1 olacak endeksinin yönü, (ascending) ya da -1 (azalan). Yön için tek anahtar veya dizin için bir önemi yok rastgele erişim alma ama eğer yapacağı ya da eğer önemli Aralık bileşik dizinler sorgular.

Ancak, Endeksin yönü bileşik dizinler üzerinde önemli bir neden - biri daha ayrıntılı bir açıklama (ya da örnek) veriniz? görüyorum

CEVAP
26 NİSAN 2012, PERŞEMBE


MongoDB bir şekilde bileşik anahtar birleştirir ve bir b-Tree indeksleme anahtar olarak kullanır.

Tek öğeleri bulma- Ağaçtaki düğümlerin sırası değildir.

Düğümler bir dizi geri- Elemanları birbirlerine yakın ağacın aynı dallarında olacak. Düğümler aralığında hızlı alınabilir daha yakın.

Tek alanlı bir dizin ile- Sırası önemli olmayacak. Eğer birlikte artan yakın ya da birlikte azalan yakın olacak.

Bileşik bir anahtar varsa- Sırası önemli olmaya başlar.

Eğer anahtarı artan Bir B ise index artan böyle bir şey olabilir:

Row   A B
1     1 1
2     2 6
3     2 7 
4     3 4
5     3 5
6     3 6
7     5 1

Artan Bir B azalan bir sorgu bozuk dizin etrafında atlamak için satır dönmek gerekir ve daha yavaş olacaktır. Örneğin Satır 1, 3, 2, 6, 5, 4, 7 dönecektir

Bir dizin sadece satır döndürür sorgu olarak aynı sırayla değişiyordu sırayla doğru sırayla.

Bir b-Tree indeksleme bir kaydı bulma O(Log(n)) zaman alır. Sipariş kayıt aralığını bulma sadece k geri dönmek için kayıt sayısıdır(n) OLog k.

Eğer kayıtları sırasız, maliyet OLog(n) k * gibi yüksek olabilir

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • 2ndfloor91

    2ndfloor91

    17 Kasım 2007
  • Maschine Tutorials

    Maschine Tut

    15 ŞUBAT 2011
  • TechnoBuffalo

    TechnoBuffal

    8 HAZİRAN 2007