Nachteile von CouchDB
Habe ich kürzlich gefallenen in Liebe mit CouchDB. Ich bin ziemlich begeistert von Ihrer enormen Vorteile und der durch seine Schönheit. Jetzt möchte ich sicherstellen, dass ich nicht verpassten show-stopping Nachteile.
Was dir in den Sinn kommt? Beigefügt ist eine Liste der Punkte, die ich gesammelt habe. Gibt es etwas hinzuzufügen?
- Blog-posts von Ende 2010 Anspruch "nicht reif genug" (was auch immer das Wert ist).
- Langsamer als in-memory-DBMS.
- In-place-updates benötigen, server-side Logik (update-Handler).
- Trades disk vs. Geschwindigkeit: Datenbanken können riesig geworden im Vergleich zu anderen DBMS (Verdichtung Funktionalität vorhanden ist, obwohl).
- "Nur" eventuelle Konsistenz.
- Temporäre Ansichten, die auf große Datenbestände sind sehr langsam.
- Replikation von großen Datenbanken fehlschlagen.
- Map/reduce-Paradigma erfordert Umdenken (nur der Vollständigkeit halber).
Der einzige Punkt, der sorgen mir ist #3 (in-place updates), weil es ziemlich unbequem.
- Was ist die HTTP-Kommunikation overhead? Was über die Schwierigkeiten zu beschränken, die Werte in der couch (uniques sind schwer zu tun)
Du musst angemeldet sein, um einen Kommentar abzugeben.
Was bedeutet, dass die Dokumente sind sehr groß (im Bereich Big data, Netzwerk-Bandbreite, Geschwindigkeit), und mit beschreibenden Schlüsselnamen eigentlich weh tut, da Sie sich zu der Größe der Dokumente.
Keine eingebaute Volltextsuche
Zwar gibt es Möglichkeiten: couchdb-lucene, elasticsearch
plus einige mehr:
Bedeutet es, dass die Durchsetzung der Eindeutigkeit eines Feldes in allen Dokumenten ist nicht sicher, zum Beispiel erzwingen, dass ein Benutzername ist einzigartig. Eine weitere Folge von CouchDB nicht der typischen Vorstellung von einer Transaktion ist, dass Dinge wie inc/Dekrementieren einen Wert ein, und speichern Sie es wieder sind auch gefährlich. Es gibt nicht viele Instanzen, die wir wollen einfach inc/Dekrementieren einen Wert, wo wir nicht einfach so speichern Sie die einzelnen Dokumente separat und aggregiert Sie mit einem Blick.
Wenn die Daten sehr viel Sinn macht in 3. Normalform, und wir versuchen zu Folgen, die form, in der CouchDB, wir laufen in eine Menge ärger. Ein möglicher Weg, dieses problem zu lösen, ist mit Blick Sortierungen, aber wir könnten ständig zu kämpfen mit dem system. Wenn die Daten können formatiert werden, werden viel mehr denormalisierten, dann CouchDB funktioniert.
Das problem mit diesem ist, dass temporäre views in CouchDB auf große datasets sind wirklich sehr langsam. Mit CouchDB und ständige Blicke könnte ganz gut funktionieren. Jedoch, in den meisten Fällen, eine spaltenorientierte Datenbank von einer Art ist ein viel besseres Werkzeug für data warehousing-job.
Aber CouchDB Rockt!
Aber lassen Sie es nicht discorage Sie: NoSQL-DBs, die sind geschrieben in Erlang (CouchDB, Riak) sind die besten, da Erlang ist gedacht für verteilte Systeme. Haben Sie Spaß mit Couch!
2 weitere Dinge, die mich Weinen bei der Verwendung von CouchDB (obwohl es genial ist):
Als Alter Lotus Domino pro ich war auf der Suche nach CouchDB als alternative für ein neues Projekt ich bin kicking off und gefunden, die Grenzen für Leser zu sein, sehr schwach im Sofa vs. Domino. In meinem app-Sicherheit ist ein wichtiger Aspekt und die Couch müsste eine middleware-Schicht zu behandeln reader-Sicherheit.
Wenn Sie Datenbank, in der es okay ist, dass alle definierten Benutzer können alle Dokumente, dann Couch sieht aus wie eine interessante Plattform.
Wenn die Einschränkung liest benötigt, dann müssen Sie schauen, um eine middleware-Lösung oder betrachten Sie eine weitere alternative.
Hinweis an die CouchDB-Entwickler: Verbesserung der Plattform-Sicherheits-Optionen. Ich merke, Sie wird die Leistung verringern, wenn verwendet, aber beachten Sie, dass und stellen Sie die option verfügbar.
Nun zurück, um zu bestimmen, welche Datenbank zu verwenden...
Es ist nichts zu tun mit CouchDB selbst, aber sein ein relativer Neuling in der Szene bedeutet, dass die meisten Systemadministratoren sind noch nicht vertraut mit ihm, und wird nicht zulassen, dass es irgendwo in der Nähe "Ihrer" Rechenzentren. Wenn Sie in einer situation, wo Sie bereitstellen eine Umgebung, die Sie nicht selbst kontrollieren, das kann durchaus die Schlacht.
Mangel an Unterstützung für die Daten-Archivierung - Keine offizielle Unterstützung für Daten-Archivierung ist mit couch db open-source-distribution.