MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Przypadek indeksów haszowanych MongoDB

Oprócz indeksów skalarnych (rosnąco, malejąco) MongoDB obsługuje również indeksy haszowane. Gdy używasz indeksu haszowanego w polu, MongoDB oblicza skrót wartości pola i przechowuje ten skrót w indeksie. Indeksy haszowane obsługują tylko porównywanie równości i nie obsługują zapytań dotyczących zakresu i są zwykle używane w scenariuszach fragmentowania.

Tworzenie indeksu haszowanego MongoDB

Aby utworzyć indeks haszowany, możesz użyć następującej składni:

db.collection.ensureIndex({'field':'hashed'});

Możesz utworzyć zarówno indeks skalarny, jak i indeks haszowany w tym samym polu.

Sharding MongoDB

Zazwyczaj sharding MongoDB jest implementowany przy użyciu partycjonowania „opartego na zakresach”. W tym podejściu każdemu fragmentowi jest przypisywany zakres wartości klucza fragmentu. Jeśli klucz fragmentu stale rośnie, jak sygnatury czasowe lub identyfikator obiektu, może to czasami skutkować „gorącym” fragmentem, ponieważ najnowsze wartości zawsze są kierowane do tego samego fragmentu.

Sposobem na obejście tego jest użycie „partycjonowania opartego na hashowaniu”. Obliczany jest skrót klucza fragmentu, a ta wartość skrótu jest używana do kierowania do fragmentu zamiast rzeczywistej wartości. Pomaga to równomiernie rozłożyć obciążenie na wszystkie fragmenty, zamiast wysyłać wszystkie najnowsze dane do tego samego fragmentu. Partycjonowanie oparte na mieszaniu jest realizowane przy użyciu indeksów mieszanych w kluczu fragmentu. Aby uzyskać więcej informacji, zapoznaj się z dokumentacją shardingu.

Hashed Index Plusy i minusy

  • Zalety

    Indeksy haszowane są zwykle mniejsze niż indeksy skalarne, ponieważ zamiast pełnego klucza jest przechowywany tylko skrót klucza. Np. W prostym teście z 100k dokumentów dodaliśmy indeksy haszowane i skalarne do pola tekstowego – „fieldName”. Jak pokazano poniżej, indeks haszowany jest zwykle znacznie mniejszy niż indeksy skalarne:

    "indexSizes" : {
            "_id_" : 811008,
            "firstName_1" : 4415488,
            "firstName_hashed" : 1490944
    }
    
  • Wady

    Nie obsługuje zapytań o zakres. Jeśli uruchomisz zapytanie zakresowe dla zaszyfrowanego indeksu, spowoduje to skanowanie indeksu.

Indeksy szyfrowane MongoDB dla odłamków — Pro i ConsKliknij, aby tweetować

Zaszyfrowane ograniczenia indeksu

    1. Zaszyfrowane indeksy nie obsługują tablic.
    2. Indeksy haszowane nie mogą być indeksami złożonymi.
    3. Nie możesz dodać unikalnych ograniczeń dla zaszyfrowanych indeksów.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Programowanie baz danych w Pythonie z MongoDB dla początkujących

  2. Subskrypcja kolekcji Meteor.Users

  3. „Pole wymagało fasoli, której nie można było znaleźć”. błąd wiosennego spokojnego interfejsu API przy użyciu mongodb

  4. Kiedy zamknąć połączenie z bazą danych MongoDB w Nodejs

  5. Jak pobrać tablicę z kolekcji mongoDB?