Ich habe versucht, die API zu bewegen, die ich sicher mit der Stapelüberlauf iPhone App habe Ich schrieb eine Weile zurück zu MongoDB von wo es derzeit in einer MySQL-Datenbank sitzt. In roher Form liegt der SO-CC-Dump im Multi-Gigabyte-Bereich und die Art und Weise, wie ich die Dokumente für MongoDB erstellte, resultierte in einer 10G + -Datenbank. Es ist einleuchtend, dass ich die Dokumente nicht gut konstruiert habe, aber ich wollte nicht eine Menge Zeit damit verbringen.
Eines der allerersten Dinge, denen Sie begegnen werden, wenn Sie diesen Pfad starten, ist das Fehlen von 32-Bit-Unterstützung. Natürlich bewegt sich jetzt alles auf 64 Bit, aber nur etwas, das man im Auge behalten sollte. Ich glaube nicht, dass eine der wichtigsten Dokumentendatenbanken das Paging im 32-Bit-Modus unterstützt, und das ist vom Standpunkt der Code-Komplexität aus verständlich.
Um zu testen, was ich tun wollte, habe ich eine 64-Bit-Instanz EC2-Knoten verwendet. Die zweite Sache, auf die ich gestoßen bin, ist, dass obwohl diese Maschine 7G Speicher hatte, als der physische Speicher erschöpft war, die Dinge von schnell zu nicht so schnell gingen. Ich bin mir nicht sicher, ob ich etwas falsch eingerichtet habe, weil die Nicht-Unterstützung des 32-Bit-Systems das, wofür ich es verwenden wollte, zunichte gemacht hat, aber ich wollte immer noch sehen, wie es aussah. Das Laden des gleichen Daten-Dumps in MySQL dauert etwa 2 Minuten auf einer viel weniger leistungsfähigen Box, aber das Skript, das ich verwendet habe, um die beiden Datenbanken zu laden, funktioniert anders, so dass ich keinen guten Vergleich machen kann. Das Ausführen nur einer Teilmenge der Daten in MongoDB war viel schneller, solange es zu einer Datenbank führte, die weniger als 7G war.
Ich denke, dass mein Weg davon war, dass große Datenbanken gut funktionieren werden, aber Sie müssen möglicherweise darüber nachdenken, wie die Daten mehr als bei einer traditionellen Datenbank strukturiert sind, wenn Sie die hohe Leistung beibehalten möchten.Ich sehe eine Menge Leute, die MongoDB zum Loggen benutzen, und ich kann mir vorstellen, dass viele dieser Datenbanken massiv sind, aber gleichzeitig nicht viel zufälligen Zugriff haben, so dass die Performance für traditionelle Anwendungen maskiert wird .
Eine aktuelle Ressource, die hilfreich sein könnte, ist die visual guide to nosql systems. Es gibt eine gute Auswahl außerhalb von MongoDB. Ich habe Redis auch verwendet, obwohl nicht mit einer so großen Datenbank.
TBH mit ORMs wie Hibernate, eine solche fantastischen Job von so etwas abstrahiert nicht weg sehe ich den Punkt wirklich. –
MongoDB konkurriert in den meisten Fällen nicht wirklich mit NHibernate und relationalen Datenbanken. Sehen Sie sich die Anwendungsfallliste an, mit der ich verlinkt bin. Relationale Datenbanken sind für einige Situationen wirklich schrecklich und diese alternativen Datenbanken sind bessere Lösungen. Der OP mag auch hier den Begriff Objektdatenbanken falsch verwenden. –
640K sollte für jeden ausreichen. –