Frage

Ich habe in den letzten Tagen Dokumentation gelesen und Screencasts spezifisch für Mongo DB gesehen, und ich bin nicht mehr verliert, wenn eine solche Lösung besser wäre als eine typische PG- oder MySQL -Umgebung.

Insbesondere meine Frage ist unter welchen Umständen (mit Anwendungsfall wäre schön), möchten Sie die NoSQL -Route gehen?

Vielen Dank!

Keine korrekte Lösung

Andere Tipps

  1. Viele unterschiedliche Schriftsteller. Vor allem, wenn die Autoren aufgrund von Unterbrechungen im Netzwerk segmentiert werden können und später Daten erneut synchronisieren müssen, die auf beiden Seiten der Bifurkation geschrieben wurden. Dies bricht Säure, und obwohl Sie das Problem mit expliziter Geschäftslogik lösen können, sind Sie jetzt im NoSQL -Gebiet. Dies ist in militärischen Situationen sehr häufig, aber jedes System, in dem jeder ein produktiver Schriftsteller ist, wird eine Schreibeinstrahlung auf einem Säuresystem haben.

  2. Flüssigkeitsschemata. Das Ändern eines Schemas in einem herkömmlichen DB ist ein teurer Vorgang, der häufig eine Art Serverausfall oder andere komplizierte Prozesse erfordert. Bei den meisten NoSQL -Systemen ist es trivial. Wenn Sie also Daten aus vielen unterschiedlichen Quellen haben, die zusammengeführt werden und/oder Situationen haben, in denen Sie möglicherweise zu einem späteren Zeitpunkt neue Informationen verfolgen möchten, können NoSQL -Systeme viel einfacher zu handhaben sein. Das Zusammenführen von zwei Datenquellen, damit sie miteinander angezeigt werden können, ist ein gutes Beispiel, an das ich denken kann.

  3. Replikation mit niedriger Bandbreite. Sobald Sie Säure gebrochen haben, können Sie Leser und Autoren auf Blattknoten eines Netzwerkdiagramms mit Teildaten haben, die keine vollständigen Replikate der Datenbank benötigen. Das Produkt meines eigenen Unternehmens, der Kommandoposten der Armee der Zukunft, nutzt dies.

  4. Dateninteroperabilität. In den meisten NOSQL -Datenbanken können Sie die Daten ein- und aggressieren, ohne das Schema im Voraus zu kennen, sodass Verbindungen zwischen unterschiedlichen Systemen einfacher werden können.

  5. Massive Skalierung. Dies ist diejenige, die am meisten diskutiert und am häufigsten von NoSQL-Befürwortern missbraucht wird. Wenn dies der einzige Grund ist, warum Sie NoSQL wählen, beginnen Sie stattdessen mit MySQL und skalieren Sie später.

Anwendungsfall
Wir verwenden MongoDB für eine extrem vorübergehende Datenstruktur in großem Maßstab. Es funktioniert tatsächlich als Job -Tracker / Manager, wobei viele Arbeitseinheiten jede Sekunde verarbeitet werden. Die Arbeitseinheit hat kein definiertes Schema (verschiedene Einheiten werden etwas häufig erfunden), aber wir müssen die Fähigkeit haben, bestimmte Felder oder Eigenschaften abzufragen, ohne die gesamte DB zu iterieren. Um es zu rekapiten: Sehr vorübergehend, hoch verfügbar (kann es sich nicht leisten, eine Abfrage zu blockieren) mit einer Arbeitsbelastung von ungefähr 600qps für eine einzelne "Waren" -Maschine, die in der Cloud ausgeführt wird.

Tatsache ist, dass es äußerst schwierig ist, dasselbe auf einer SQL -Maschine zu tun und gleichzeitig die gleichen Kosten beizubehalten.

Andere beliebte Anwendungsfälle für MongoDB (auch für uns) sind eine statistische Sammlung. Es ist äußerst effizient darin, bestimmte Eigenschaften innerhalb von Dokumenten zu erhöhen, viel mehr als die meisten RDBMS -Systeme.

Auch hier ist es nicht so, dass es in MySQL unmöglich ist, dass es nur teurer ist und mehr Zeit (mehr Fähigkeiten) braucht, was für ein kleines Unternehmen oder eine schnelle Entwicklungsumgebung bedeutet, dass es nicht möglich ist.

Einige REST -APIs geben JSON -Daten zurück (z. B. viele der Offene Regierungsdaten -APIs). Wenn Sie die Restdaten in einen lokalen Datenspeicher ablegen möchten (falls Sie eine Analyse usw. ausführen müssen), ist die Einnahme eines JSON -Objekts mit MongoDB trivial. Sie müssen kein Tischschema definieren. Noch besser, wenn sich das JSON -Objekt im Laufe der Zeit ändert (z. B. die Rest -API gibt zusätzliche Felder zurück), können Sie die Daten in einem Schritt weiterhin aufnehmen. Versuchen Sie das mit einer relationalen Datenbank!

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top