私は Neo4j の初心者であり、Neo4j が効率的な SQL クエリよりも高速でなければならない理由がよくわかりません。データ構造または基になるクエリの実装が原因ですか? 誰かがこれを理解するのを手伝ってくれたら本当に感謝しています。
質問する
2139 次
1 に答える
10
Neo4jは、一般的にSQLデータベースよりも高速ではありません。多くの場合、グラフベースの問題の方が高速です。たとえば、2つのエンティティ間の最短パスを見つけたい場合、データの構造とこの構造のために使用できるアルゴリズムのために、Neo4jはMySQLなどよりもパフォーマンスが優れている可能性があります。Neo4jは、そのデータをノードおよびこれらのノード間の関係として保存します。それらは直接接続されています。単純な最短経路アルゴリズムは、幅優先探索です。1つのノードから開始して、接続されているノードを展開し、その子のそれぞれについて、終了ノードが見つかるまで同じことを行います。このようにして、少量のデータにのみ触れることができます。SQLクエリでは、これを簡単に行うことはできないため、コードで何かを構築する必要があります。結果セットをトラバースし、結果ごとに新しいクエリを生成します。したがって、多くのクエリが発生することになります。
于 2012-04-08T01:57:19.637 に答える