Redis
 sql >> Datenbank >  >> NoSQL >> Redis

Sollte ich bei Verwendung von MongoDB als Masterdatenbank eine separate Graphdatenbank verwenden, um Beziehungen zwischen Entitäten zu implementieren?

Mike,

Sie sollten Ihre Beziehungsdaten in der Diagrammdatenbank speichern können. Seine hohe Leistung beim Durchlaufen großer Graphen kommt von der Lokalität, d.h. Sie führen keine Abfragen global aus, sondern starten eine Reihe von Knoten (die in Ihrem Fall Dokumenten entsprechen, die von einem Index nachgeschlagen werden. Sie könnten sogar start-node- ids für den schnellen Zugriff auf Ihre Mongo-Dokumente). Von dort aus können Sie beliebig große Wege in konstanter Zeit (bzgl. Datensatzgröße) durchlaufen.

Was sind Ihre anderen Anforderungen (d. h. Datensatzgröße, Anzahl gleichzeitiger Zugriffe usw., Beziehungs-/Diagrammkomplexität).

Ihre Abfragen passen wirklich gut zur Graphdatenbank und lassen sich leicht in ihren Begriffen ausdrücken.

Ich würde vorschlagen, dass Sie sich einfach eine Graphdb wie neo4j schnappen und einen schnellen Spike mit Ihrer Domain durchführen, um die allgemeine Machbarkeit zu überprüfen und auch zusätzliche Fragen herauszufinden, die Sie beantwortet haben möchten, bevor Sie in die zweite Technologie investieren.

P.S. Wenn Sie noch nicht begonnen hätten, hätten Sie auch einen reinen Graphdb-Ansatz wählen können, da Graphdatenbanken eine Obermenge von Dokumentendatenbanken sind. Und Sie sprechen in Ihrem Fall ohnehin lieber von Domänen als nur von allgemeinen Dokumenten. (Beispiel:structr ist ein CMS, das auf Neo4j aufbaut).