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

Wydajność MongoDB - ile baz danych, kolekcji?

Podejście 1(A): Tworzenie jednej bazy danych do wszystkiego. (Z pojedynczą kolekcją)

Plusy:

  • Mniej konserwacji:tworzenie kopii zapasowych, tworzenie użytkowników baz danych, przywracanie itp.

Wady:

  • Możesz zobaczyć blokada na poziomie bazy danych do tworzenia indeksów w dużej bazie danych
  • Aby wykonać operacje na określonych danych z czujnika, musisz dodać dodatkowe indeksy, aby pobrać tylko kolekcję specyficzną dla czujnika
  • Jesteś zobowiązany nie tworzyć ponad 64 indeksy na jednej kolekcji. Chociaż brzmi to zła strategia indeksowania.

Podejście 1(B): Tworzenie jednej bazy danych do wszystkiego. (Z 1 kolekcją dla każdego czujnika)

Plusy:

  • Mniej konserwacji:tworzenie kopii zapasowych, tworzenie użytkowników baz danych, przywracanie itp.
  • Minimalizuje potrzebę tworzenia indeksów w celu identyfikacji danych specyficznych dla czujnika z całej kolekcji monolitycznej
  • Każde zapytanie dotyczące czujnika będzie kierowane tylko na określoną kolekcję. Nie wymaga ściągania do pamięci dużego zestawu roboczego w porównaniu z pojedynczą dużą kolekcją.
  • Wskaźnik budowania na stosunkowo mniejszej kolekcji jest bardziej wykonalny niż w przypadku dużej kolekcji w pojedynczym DB

Wady:

  • Możesz skończyć się utworzeniem zbyt wielu indeksów. (Suma całkowitej liczby indeksów we wszystkich kolekcjach).
  • Dla większej liczby indeksów wymagana jest dalsza konserwacja.
  • WiredTiger tworzy 1 plik dla kolekcji i 1 dla indeksu wewnętrznego. Jeśli Twój przypadek użycia rośnie wraz z dużą liczbą czujników. Możesz skończyć używając limitu 64K otwartych plików.

Czy pod względem wydajności ma znaczenie, czy podzielę dane według każdego czujnika, czy według danych?

  • To zależy od wzorców dostępu oczekiwanych od Twojej aplikacji analitycznej.

Z punktu widzenia wydajności, czy powinienem utworzyć kolekcję tylko dla informacji z czujników, a następnie kolekcje dla danych, czy po prostu połączyć je w tej samej kolekcji?

  • Konieczne może być utworzenie kolekcji dla metadanych czujnika i danych z czujnika. Zminimalizuje to powielanie metadanych czujnika w każdym zebranym czujniku.

  • Możesz przeczytać Wpis na blogu Williamsa tutaj na temat projektowania tego wzoru.

Jak zawsze, lepiej zaprojektować przykładowy schemat i przetestować zapytania w środowisku testowym.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Jak grupować według wielu pól w MongoDB, gdy jedno jest polem daty?

  2. Zalety MongoDB | Wady MongoDB

  3. Wyszukiwanie tekstowe MongoDB ORAZ wiele wyszukiwanych słów

  4. Mongo rzuca ciąg na numer w zapytaniu

  5. Najbardziej efektywny sposób przechowywania zagnieżdżonych kategorii (lub danych hierarchicznych) w Mongo?