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

Wydajność MongoDB - posiadanie wielu baz danych

Nasza aplikacja potrzebuje 5 kolekcji w db. Kiedy dodajemy klientów do naszej aplikacji, chcielibyśmy zachować oddzielną bazę danych dla każdego klienta. Na przykład, jeśli mamy 500 klientów, mielibyśmy 500 db i 2500 kolekcji (każdy db ma 5 kolekcji). W ten sposób możemy oddzielić dane każdego klienta.

To świetny pomysł. Oprócz logicznej separacji, która zapewni Ci to, będziesz także mógł korzystać z zabezpieczeń na poziomie bazy danych w MongoDB, aby zapobiec przypadkowemu dostępowi do danych innych klientów.

Obawiam się, czy doprowadzi to do jakichkolwiek problemów z wydajnością?

Nie, i w rzeczywistości pomoże, ponieważ w przypadku blokady na poziomie bazy danych bardzo duża rywalizacja o blokadę dla jednego klienta (jeśli jest to możliwe w twoim scenariuszu) nie wpłynie na wydajność innego klienta (nadal może, jeśli konkurują o tę samą przepustowość I/O ale jeśli użyjesz opcji --directoryperdb, masz możliwość umieszczenia tych baz danych na osobnych urządzeniach fizycznych.

Dzielenie na fragmenty pozwoli również na łatwe skalowanie, ponieważ nie będziesz nawet musiał partycjonować żadnych kolekcji — możesz po prostu krążyć wokół baz danych w wielu fragmentach, aby umożliwić dystrybucję obciążenia do oddzielnych klastrów (jeśli i kiedy osiągniesz ten poziom).

W przeciwieństwie do twierdzenia w drugiej odpowiedzi, wątek TTLMonitor NIE ściąga dokumentów do pamięci RAM, chyba że są one usuwane (i dodawane do wolnej listy). Działają w oparciu o indeksy TTL, aby stwierdzić, czy jakiekolwiek dokumenty mają wygasnąć, a także bezpośrednio zlokalizować dokument.

Zdecydowanie odradzałbym korzystanie z jednej bazy danych z wieloma kolekcjami, ponieważ nie pozwala ona ani na partycjonowanie obciążenia, ani nie zapewnia bezpieczeństwa, ani nie jest łatwiejsza w obsłudze po stronie aplikacji.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Czy ktoś próbował MongoDB w Google App Engine?

  2. Jak mogę załadować dane z kolekcji mongodb do DataFrame pand?

  3. Importuj dane do MongoDB z pliku JSON za pomocą Java

  4. MongoDB — eksport danych

  5. Określ wiele kryteriów dla elementów tablicy