2012-04-08 13 views
4

Ich bin ein Neuling zu Neo4j, und kann nicht ganz verstehen, warum Neo4j muss schneller sein als eine effiziente SQL-Abfrage. Liegt es an der Datenstruktur oder der zugrundeliegenden Abfrage-Implementierung? Ich schätze es sehr, wenn mir jemand dabei helfen kann.Warum Neo4j ist schneller als SQL

+1

Bitte akzeptieren Sie Drexins Antwort, wenn es für Sie zufriedenstellend ist. – wssbck

Antwort

10

Neo4j ist im Allgemeinen nicht schneller als eine SQL-Datenbank. Bei graphenbasierten Problemen ist es in vielen Fällen schneller. Wenn Sie beispielsweise den kürzesten Pfad zwischen zwei Entitäten finden möchten, wird Neo4j wahrscheinlich MySQL übertreffen, da die Daten strukturiert sind und die Algorithmen aufgrund dieser Struktur verwendet werden können. Neo4j speichert seine Daten als Knoten und Beziehungen zwischen diesen Knoten. Sie sind direkt miteinander verbunden. Ein einfacher Algorithmus für den kürzesten Weg ist eine Breitensuche. Sie beginnen an einem Knoten und erweitern seine verbundenen Knoten. Für jeden der untergeordneten Knoten machen Sie dasselbe, bis Sie den Endknoten gefunden haben. Auf diese Weise werden Sie nur eine kleine Menge von Daten berühren. In einer SQL-Abfrage können Sie dies nicht so einfach tun, also müssen Sie etwas in Ihrem Code erstellen, das die Ergebnismengen durchläuft und neue Abfragen für jedes Ergebnis generiert. Sie werden also viele Fragen haben.

Verwandte Themen