2012-04-08 15 views
4

私はNeo4jの初心者です。なぜ、Neo4jが効率的なSQLクエリーより高速でなければならないのかを理解できません。それはデータ構造または基本的なクエリの実装のためですか?誰かが私にこれに亀裂を入れるのを手伝ってもらえると本当に感謝しています。Neo4jがSQLよりも高速な理由

+1

満足できる場合は、drexinの回答に同意してください。 – wssbck

答えて

10

一般に、Neo4jはSQLデータベースより高速ではありません。多くの場合、グラフベースの問題の方が高速です。たとえば、2つのエンティティ間の最短経路を探したい場合Neo4jは、データ構造の仕方やこの構造のために使用できるアルゴリズムのために、MySQLなどのパフォーマンスを上回る可能性が高くなります。 Neo4jはノードとノード間の関係としてデータを格納します。彼らは直接接続されています。単純な最短経路アルゴリズムは幅優先探索である。 1つのノードから始まり、接続されたノードを展開します。次に、それぞれのノードについて、エンドノードを見つけるまで同じ操作を行います。こうすることで、少量のデータに触れることになります。 SQL問合せでは、これを簡単に実行することはできません。そのため、コード内に何かを構築し、結果セットをトラバースし、結果ごとに新しい問合せを生成する必要があります。だからあなたは多くのクエリで終わるでしょう。

関連する問題