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

Przechowuj wyliczenie MongoDB

TL;DR:Stringi są prawdopodobnie bezpieczniejsze wybór, a różnica w wydajności powinna być znikoma. Liczby całkowite mają sens w przypadku dużych kolekcji, w których wyliczenie musi być indeksowane. MMW.

Prawda.

Moim zdaniem jest to kluczowa zaleta liczb całkowitych. Wymaga to jednak również upewnienia się, że powiązane wartości enum nie zmieniaj. Jeśli to schrzanisz, prawie na pewno siejesz spustoszenie , co jest ogromną wadą.

Jeśli faktycznie używasz typu danych enum, prawdopodobnie jest to jakiś rodzaj liczby całkowitej wewnętrznie, więc liczba całkowita powinna wymagać mniej przetwarzania. Tak czy inaczej, ten koszt powinien być znikomy.

Powtarzam wiele z tego, co zostało powiedziane, ale może to pomaga innym czytelnikom. Podsumowując:

  • Pomieszanie mapy wartości enum sieje spustoszenie. Wyobraź sobie, że Twój Declined stany są nagle interpretowane jako Accepted , ponieważ Declined miał wartość '2', a teraz jest Accepted ponieważ zmieniłeś kolejność wyliczenia i zapomniałeś ręcznie przypisać wartości... (drżenie )
  • Smyczki są bardziej wyraziste
  • Liczby całkowite zajmują mniej miejsca. Miejsce na dysku zwykle nie ma znaczenia, ale miejsce na indeks pochłonie pamięć RAM, co jest drogie.
  • Aktualizacje liczb całkowitych nie zmieniają rozmiaru obiektu. Łańcuchy, jeśli ich długości znacznie się różnią, mogą wymagać ponownego przypisania. Jednak dopełnienie ciągów i współczynnik wypełnienia powinny to złagodzić.
  • Liczby całkowite mogą być flagami (jeszcze nie można zadawać zapytań (jeszcze), niestety, zobacz SERVER-3518 )
  • Liczby całkowite można odpytywać przez $gt / $lt dzięki czemu możesz efektywnie zaimplementować złożone $or zapytań, chociaż jest to dość tajemnicze wymaganie i nie ma nic złego w $or zapytania...



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Czy mongocli obsługuje adres URL formuły dla chipów Apple M1?

  2. pymongo.errors.ConnectionFailure:nie można połączyć się z hostem lokalnym:27017:[Errno 111] Połączenie odrzucone

  3. Wyszukiwanie MongoDB w kolekcji

  4. Unikalny indeks rzadki Mongodb

  5. Mapa MongoDB()