Vor- und Nachteile von MongoDB? [geschlossen]

74

Kann mir jemand sagen, was die Vor- und Nachteile von Mongodb sind, insbesondere im Vergleich zur relationalen Datenbank? einschließlich ACID, Skalierbarkeit, Durchsatz, Hauptspeicherauslastung, Einfüge- / Abfrageleistung und Indexgröße usw.

zbdiablo
quelle
3
Warum eine solche Frage schließen? Wie die Up-Votes zeigen, ist es nützlich. Dort übereifrig sein. Ein gutes Beispiel dafür, dass das SO-Paradigma zu weit gedrängt wurde ...
LogicOnAbstractions

Antworten:

130

Einige allgemeine Punkte zu MongoDB

Vorteile:

  • ohne Schema. Wenn Sie ein flexibles Schema haben, ist dies ideal für einen Dokumentenspeicher wie MongoDB. Dies ist in RDBMS nur schwer performant zu implementieren
  • einfache Skalierbarkeit. Skalieren Sie Lesevorgänge mithilfe von Replikatsätzen. Skalieren Sie Schreibvorgänge mithilfe von Sharding (Auto Balancing). Starten Sie einfach eine andere Maschine und los geht's. Hinzufügen weiterer Maschinen = Hinzufügen von mehr RAM, über das Sie Ihren Arbeitssatz verteilen können.
  • Kosten. Hängt natürlich davon ab, welches RDBMS, aber MongoDB ist kostenlos und kann unter Linux ausgeführt werden, ideal für die Ausführung mit einem günstigeren Commodity-Kit.
  • Sie können abhängig vom Wert der Daten auswählen, welche Konsistenzstufe Sie möchten (z. B. schnellere Leistung = Einfügungen in MongoDB auslösen und vergessen, langsamere Leistung = Warten, bis die Einfügung auf mehrere Knoten repliziert wurde, bevor Sie zurückkehren).

Nachteile:

  • Die Datengröße in MongoDB ist normalerweise höher, da beispielsweise in jedem Dokument Feldnamen gespeichert sind
  • weniger Flexibilität beim Abfragen (zB keine JOINs)
  • Keine Unterstützung für Transaktionen - bestimmte atomare Operationen werden auf einer einzelnen Dokumentebene unterstützt
  • Im Moment ist Map / Reduce (z. B. für Aggregationen / Datenanalysen) in Ordnung, aber nicht besonders schnell. Wenn dies erforderlich ist, muss möglicherweise etwas wie Hadoop in die Mischung aufgenommen werden
  • weniger aktuelle Informationen verfügbar / sich schnell entwickelndes Produkt

Ich habe kürzlich meine Gedanken zu MongoDB als jemand mit SQL Server-Hintergrund gebloggt, daher könnte Sie das interessieren (oben sind nur einige der wichtigsten Punkte).

Wenn Sie nach einer Antwort "Ist MongoDB besser als RDBMS" suchen, dann gibt es meiner Meinung nach keine Antwort. NoSQL-Technologien wie MongoDB bieten eine Alternative, die RDBMS-Technologien ergänzt. Einer ist möglicherweise besser für einen bestimmten Zweck geeignet als der andere. Es geht also darum, einen Anruf zu tätigen, der für Sie für eine bestimmte Anforderung am besten geeignet ist.

AdaTheDev
quelle
3
+1, aber ich denke, es ist wichtig zu beachten, dass die Reaktionsfähigkeit der Mailingliste sofort, genau und gründlich ist - was wirklich wichtig ist, wenn sich das Produkt so schnell entwickelt.
Lucas Zamboulis
Guter Punkt. In meinem Blog-Beitrag habe ich "Community" als eines der positiven Aspekte von MongoDB aufgenommen und auch, dass "sich schnell entwickelnd" ebenfalls positiv ist. Das heißt nicht, dass die Community für RDMBS nicht so großartig ist, wie es ist, wenn man von SQL Server POV
spricht
6
Ich würde sagen, Sie haben einen wichtigen Punkt verpasst, als Sie "frei" als Profi zitiert haben. Die beste Alternative in der RDBMS-Welt ist PostgreSQl, das in Bezug auf SQL-Standards und Zuverlässigkeit genauso kostenlos und sogar besser als SQLServer ist.
Morg.
1
@Morg - re: cost, ich habe gesagt "Hängt davon ab, welches RDBMS ...", um die Allgemeinheit der Frage / Antwort abzudecken.
AdaTheDev
3
Es wäre hilfreich, mehr über die Vorteile / Kosten eines
Hack-R