MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

MongoDB-Leistungen – wie viele Datenbanken, Sammlungen?

Ansatz 1(A): Erstellen einer einzigen Datenbank für alles. (Mit Einzelabholung)

Vorteile:

  • Weniger Wartungsaufwand:Backup, Erstellen von Datenbankbenutzern, Wiederherstellen usw.

Nachteile:

  • Möglicherweise sehen Sie Datenbankebenensperre verwenden zum Erstellen von Indizes für große Datenbanken
  • Um Operationen mit bestimmten Sensordaten durchzuführen, müssen Sie zusätzliche Indizes hinzufügen, um nur eine sensorspezifische Sammlung abzurufen
  • Sie müssen nicht erstellen mehr als 64 Indizes auf einer einzigen Sammlung. Obwohl es sich nach einer schlechten Indizierungsstrategie anhört.

Ansatz 1(B): Erstellen einer einzigen Datenbank für alles. (Mit 1 Sammlung für jeden Sensor)

Vorteile:

  • Weniger Wartungsaufwand:Backup, Erstellen von Datenbankbenutzern, Wiederherstellen usw.
  • Minimiert die Notwendigkeit, Indizes zu erstellen, um sensorspezifische Daten aus der gesamten monolithischen Sammlung zu identifizieren
  • Jede sensorspezifische Abfrage wird nur auf eine bestimmte Sammlung ausgerichtet. Im Vergleich zu einer einzelnen großen Sammlung muss kein großer Arbeitssatz in den Arbeitsspeicher gezogen werden.
  • Das Erstellen eines Index auf einer relativ kleineren Sammlung ist praktikabler als das Erstellen einer großen Sammlung in einer einzelnen DB

Nachteile:

  • Sie können am Ende zu viele Indizes erstellen. (Summe der Gesamtzahl der Indizes für alle Sammlungen).
  • Für eine große Anzahl von Indizes ist mehr Wartung erforderlich.
  • WiredTiger erstellt intern 1 Datei für eine Sammlung und 1 für den Index. Wenn Ihr Anwendungsfall mit einer großen Anzahl von Sensoren wächst. Möglicherweise verwenden Sie am Ende das Limit für offene Dateien von 64 KB.

Spielt es in Bezug auf die Leistung eine Rolle, ob ich die Daten nach einzelnen Sensoren oder nach Metriken partitioniere?

  • Dies hängt von den Zugriffsmustern ab, die von Ihrer Analytics-App erwartet werden.

In Bezug auf die Leistung sollte ich eine Sammlung nur für die Sensorinformationen und dann Sammlungen für Daten erstellen oder die beiden einfach in derselben Sammlung zusammenführen?

  • Das Erstellen einer Sammlung für Sensormetadaten und Sensordaten kann erforderlich sein. Es minimiert das Duplizieren von Sensormetadaten in allen gesammelten Sensordaten.

  • Vielleicht möchten Sie Williams-Blogbeitrag hier zum Entwerfen dieses Musters.

Wie immer ist es besser, ein Beispielschema zu entwerfen und Ihre Abfragen in Ihrer Testumgebung zu testen.