Welche Operationen sind in mongodb billig / teuer?

8

Ich lese MongoDB auf und versuche herauszufinden, wo es am besten verwendet wird. Eine Frage, auf die ich keine klare Antwort sehe, ist, welche Operationen billig und teuer sind und unter welchen Bedingungen.

Können Sie uns helfen zu klären?

Danke.

    
Abe 19.12.2011, 13:50
quelle

3 Antworten

4

Es wird oft behauptet, dass mongodb wahnsinnig schnell schreibt. Obwohl sie nicht langsam sind, ist dies eine Übertreibung. Der Schreibdurchsatz in mongodb ist durch die globale Schreibsperre begrenzt. Ja, du hast mich richtig gehört, es kann nur eine Schreiboperation auf dem Server geben, die zu einem bestimmten Zeitpunkt stattfindet.

Ich schlage auch vor, dass Sie die schemalose Natur von mongodb ausnutzen und Ihre Daten denormalisieren. Oft ist es möglich, nur eine Festplatte zu verwenden, um alle erforderlichen Daten zu holen (weil alles im selben Dokument ist). Weniger Festplattensuchen - schnellere Abfragen.

Wenn Daten im RAM gespeichert sind - es sind keine Suchvorgänge erforderlich, werden Daten direkt aus dem Speicher geliefert. Also, stellen Sie sicher, dass Sie genug RAM haben.

Karte / Reduzieren , Gruppe , $ wo Anfragen langsam sind.

Es ist nicht schnell, weiterhin in einem großen Dokument zu schreiben (zum Beispiel mit $push ). Das Dokument wird seine Plattengrenzen überschreiten und muss an einen anderen Ort kopiert werden, was mehr Festplattenoperationen erfordert.

Und ich stimme mit @AurelienB überein, einige Grundprinzipien sind in allen Datenbanken universell.

    
Sergio Tulentsev 19.12.2011, 14:14
quelle
3

Aus meiner Praxis sollte eine Sache, die erwähnt werden sollte, dass mongodb nicht sehr gut für das Reporting geeignet sein, da in Berichten üblich Daten aus verschiedenen Sammlungen (' join ') und mongodb keinen guten Weg bieten Aggregieren von Daten mehrere Sammlungen (und nicht zur Verfügung stellen). Für einige Berichte kann map / reduce oder incremental map / reduce gut funktionieren, aber selten Situationen.

Für Berichte wird vorgeschlagen, Daten in relationale Datenbanken zu migrieren, die über zahlreiche Tools für das Reporting verfügen.

    
Andrew Orsich 19.12.2011 15:35
quelle
1

Dies unterscheidet sich nicht sehr von allen Datenbanksystemen.

Abfrage auf indizierte Daten sind schnell. Abfrage auf eine Menge Daten sind ... langsam. Aufgrund der Denormalisierung, wenn kein Index vorhanden ist, ist das Schreiben auf der Basis schnell, deshalb ist die Protokollierung der grundlegende Anwendungsfall.

Umgekehrt kann das Lesen von Daten auf der Festplatte (nicht im RAM) ohne Index sehr langsam sein, wenn Sie Milliarden Dokumente haben.

    
AlphaB 19.12.2011 14:03
quelle

Tags und Links