Meine Erfahrung mit Postgres und Mongo nach der Arbeit mit beiden Datenbanken in meinen Projekten.
Postgres (RDBMS)
Postgres wird empfohlen, wenn Ihre zukünftigen Anwendungen ein kompliziertes Schema haben, das viele Verknüpfungen erfordert, oder alle Daten Beziehungen haben oder wenn wir viel schreiben. Postgres ist Open Source, schneller, ACID-kompatibel und benötigt weniger Speicher auf der Festplatte. Es ist rundum gut für den JSON-Speicher geeignet und umfasst die vollständige Serialisierbarkeit von Transaktionen mit drei Ebenen der Transaktionsisolation.
Der größte Vorteil eines Aufenthalts bei Postgres ist, dass wir das Beste aus beiden Welten haben. Wir können Daten mit Einschränkungen, Konsistenz und Geschwindigkeit in JSONB speichern. Andererseits können wir alle SQL-Funktionen für andere Datentypen verwenden. Die zugrunde liegende Engine ist sehr stabil und kommt mit einem guten Datenvolumen gut zurecht. Es läuft auch auf Ihrer Wahl der Hardware und des Betriebssystems. Postgres bietet NoSQL-Funktionen sowie vollständige Transaktionsunterstützung und speichert JSON-Dokumente mit Einschränkungen für die Felddaten.
Allgemeine Einschränkungen für Postgres
Das horizontale Skalieren von Postgres ist erheblich schwieriger, aber machbar.
Schnelle Lesevorgänge können mit Postgres nicht vollständig erreicht werden.
KEINE SQL-Datenbanken
Mongo DB (Wired Tiger)
MongoDB kann Postgres in der Dimension "horizontale Skala" schlagen. Das Speichern von JSON ist das, wofür Mongo optimiert ist. Mongo speichert seine Daten in einem Binärformat namens BSONb, das (ungefähr) nur eine binäre Darstellung einer Obermenge von JSON ist. MongoDB speichert Objekte genau so, wie sie entworfen wurden. Laut MongoDB bietet die neue Engine (Wired Tiger) für schreibintensive Anwendungen den Benutzern eine bis zu 10-fache Steigerung der Schreibleistung (ich sollte dies versuchen), wobei die Speichernutzung um 80 Prozent reduziert wird, was zur Senkung der Speicherkosten beiträgt , erreichen eine größere Auslastung der Hardware.
Allgemeine Einschränkungen von MongoDb
Die Verwendung einer schemafreien Speicher-Engine führt zum Problem impliziter Schemas. Diese Schemata werden nicht von unserer Speicher-Engine definiert, sondern basieren auf dem Anwendungsverhalten und den Erwartungen.
Eigenständige NoSQL-Technologien erfüllen nicht die ACID-Standards, da sie den kritischen Datenschutz zugunsten einer hohen Durchsatzleistung für unstrukturierte Anwendungen opfern. Es ist nicht schwer, ACID auf NoSQL-Datenbanken anzuwenden, aber es würde die Datenbank bis zu einem gewissen Grad langsam und unflexibel machen. "Die meisten NoSQL-Einschränkungen wurden in den neueren Versionen und Releases optimiert, die die vorherigen Einschränkungen weitgehend überwunden haben."