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

NoSQL – MongoDB vs. CouchDB

Siehe folgende Links

Aktualisieren :Ich fand einen großartigen Vergleich von NoSQL Datenbanken.

MongoDB (3.2)

  • Geschrieben in:C++
  • Hauptpunkt:JSON-Dokumentenspeicher
  • Lizenz:AGPL (Treiber:Apache)
  • Protokoll:Benutzerdefiniert, binär (BSON)
  • Master/Slave-Replikation (automatisches Failover mit Replikatsätzen)
  • Sharding integriert
  • Abfragen sind Javascript-Ausdrücke
  • Beliebige Javascript-Funktionen serverseitig ausführen
  • Verfügt über Geoindexierung und Abfragen
  • Mehrere Speicher-Engines mit unterschiedlichen Leistungsmerkmalen
  • Leistung über Funktionen
  • Dokumentvalidierung
  • Journaling
  • Leistungsstarkes Aggregations-Framework
  • Auf 32-Bit-Systemen begrenzt auf ~2,5 Gb
  • Textsuche integriert
  • GridFS zum Speichern von Big Data + Metadaten (eigentlich kein FS)
  • Rechenzentrumsfähig

Am besten verwendet :Wenn Sie dynamische Abfragen benötigen. Wenn Sie es vorziehen, Indizes zu definieren, keine Funktionen zuordnen/reduzieren. Wenn Sie eine gute Leistung auf einer großen DB benötigen. Wenn Sie CouchDB wollten, aber Ihre Daten sich zu sehr ändern und Festplatten füllen.

Zum Beispiel :Für die meisten Dinge, die Sie mit MySQL oder PostgreSQL machen würden, aber vordefinierte Spalten zu haben, hält Sie wirklich zurück.

CouchDB (1.2)

  • Geschrieben in:Erlang
  • Hauptpunkt:DB-Konsistenz, Benutzerfreundlichkeit
  • Lizenz:Apache
  • Protokoll:HTTP/REST
  • Bidirektionale (!) Replikation,
  • kontinuierlich oder ad-hoc,
  • mit Konflikterkennung,
  • also Master-Master-Replikation. (!)
  • MVCC - Schreiboperationen blockieren keine Lesevorgänge
  • Frühere Versionen von Dokumenten sind verfügbar
  • Nur-Crash-Design (zuverlässig)
  • Muss von Zeit zu Zeit verdichtet werden
  • Ansichten:eingebettete Karte/reduzieren
  • Ansichten formatieren:Listen &Shows
  • Serverseitige Dokumentenvalidierung möglich
  • Authentifizierung möglich
  • Echtzeit-Updates über '_changes' (!)
  • Bearbeitung von Anhängen

Am besten verwendet :Für anfallende, sich gelegentlich ändernde Daten, auf denen vordefinierte Abfragen ausgeführt werden sollen. Orte, an denen die Versionierung wichtig ist.

Zum Beispiel :CRM-, CMS-Systeme. Die Master-Master-Replikation ist eine besonders interessante Funktion, die eine einfache Bereitstellung an mehreren Standorten ermöglicht.