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

MongoDB vs. CouchDB (Geschwindigkeitsoptimierung)

Nur um die Konversation Sockets vs. HTTP und fsync vs. In-Memory zu wiederholen.

Standardmäßig gibt MongoDB keine Antwort auf einen Schreibaufruf zurück. Sie schreiben einfach Ihre Daten in den Socket und gehen davon aus, dass sie sich in der DB befinden und verfügbar sind. Unter gleichzeitiger Belastung könnte dies zu einem Backup führen, und es gibt keine gute Möglichkeit zu wissen, wie schnell Mongo wirklich ist Es sei denn, Sie verwenden einen optionalen Aufruf, der eine Antwort für den Schreibvorgang zurückgibt, sobald die Daten verfügbar sind.

Ich sage nicht, dass die Einfügungsleistung von Mongo nicht schneller ist als die von Couch. Das Einfügen in den Speicher ist viel schneller als das Synchronisieren auf die Disc. Der größere Unterschied besteht hier in den unterschiedlichen Zielen, die MongoDB und CouchDB in Bezug auf Konsistenz und Haltbarkeit haben. Aber alle "Leistungs"-Tools, die ich zum Testen von Mongo gesehen habe, verwenden die Standard-Schreib-API, sodass Sie nicht wirklich die Einfügeleistung testen, sondern testen, wie schnell Sie in einen Socket spülen können.

Ich habe viele Benchmarks gesehen, die zeigen, dass Mongo schneller als Redis und Memcached ist, weil sie nicht erkennen, dass Redis und Memcached eine Antwort zurückgeben, wenn sich die Daten im Speicher befinden und Mongo dies nicht tut. Mongo ist es definitiv nicht schneller als Redis :)