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

Czy źle jest zmienić typ _id w MongoDB na liczbę całkowitą?

Nie, wcale nie jest źle, a w rzeczywistości wbudowany ObjectId jest dość duży w indeksie, więc jeśli uważasz, że masz coś lepszego, możesz zmienić domyślną wartość _id pole do czegokolwiek.

Ale i to jest duże ale , przy podejmowaniu decyzji o odejściu od domyślnego sformułowania ObjectId należy wziąć pod uwagę pewne kwestie , szczególnie w przypadku korzystania z identyfikatorów _ids automatycznego zwiększania, jak pokazano tutaj:https://docs.mongodb.com/v3.0/tutorial/create-an-auto-incrementing-field

Wielowątkowość nie jest tak dużym problemem, ponieważ findAndModify i zamki atomowe mogą się tym zająć, ale wtedy po prostu trafiasz na swój pierwszy problem. findAndModify nie jest najszybszą ani najlżejszą funkcją, a podczas regularnego korzystania z niej zauważono znaczne spadki wydajności.

Musisz także wziąć pod uwagę obciążenie związane z robieniem tego samemu, nawet bez findAndModify . Do każdej wkładki potrzebne będzie dodatkowe zapytanie. Wyobraź sobie, że masz unikalny identyfikator, który musisz sprawdzać za każdym razem, gdy chcesz wstawić. W końcu szybkość wstawiania spadnie do indeksowania, a czas blokady wzrośnie.

Oczywiście ObjectId jest naprawdę dobry w byciu wyjątkowym bez konieczności sprawdzania lub formułowania własnej wyjątkowości poprzez dotknięcie bazy danych przed wstawieniem, dlatego nie ma tego narzutu.

Jeśli nadal uważasz, że liczba całkowita _id pasuje do Twojego scenariusza, zrób to, ale pamiętaj o narzutach opisanych powyżej.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Zaktualizuj wiele dokumentów według zestawu identyfikatorów. Mangusta

  2. Jednostki używane dla maxdistance i MongoDB?

  3. Jak utworzyć plik konfiguracyjny dla MongoDB

  4. kopia mongo z jednej kolekcji do drugiej (na tej samej bazie danych)

  5. MongoDB grupuj według godziny