2017-01-28 3 views
0

Neo4j documentationは言う:パフォーマンス上の関係の方向の影響とどのように決定する

すべての関係が重複 を作成する必要はありませんので、彼らは同様にうまく両方の方向に横断 ある方向を持っているにもかかわらず逆方向の関係(トラバーサルまたは のパフォーマンスに関して)。

私は関係がのNeo4jに実装されているかわからないんだけど、着信と発信の関係は、別々の組に保管されている場合、彼らはよく均等にまだあなたはパフォーマンスに影響を与えることができ、あなたの関係を設計する方法トラバースされているにもかかわらず。

私の質問は、関係の方向がグローバルスキームのグラフデータベースのパフォーマンスに影響するかどうかです。そうであれば、どうすればいいですか?例えば。着信と発信の関係のバランスを保ちますか?

答えて

3

リレーションシップの方向性はパフォーマンスに影響しません。

ディスク上のノードレコードは、「最初の」関係(着信または発信のいずれか)のレコードを参照するだけです。リレーションシップ・パスのトラバーサルは、主にリレーションシップ・レコードによって行われます。完全な詳細はあまりにも複雑すぎてここでの議論は成立しないが、関係データは方向性に関して対称的に格納される。したがって、関係の方向性のバランスについて心配する必要はありません。

+0

拡張してください。例えば。 N個の関係を持つノードがあると考えてください。それらのすべてが発信していて、あなたがそのうちの1つだけに興味があるのであれば、その半分が着信していれば、それは改善されません(あなたが発信するものを探していると仮定して)?私はNeo4jがそれらをどのように区別するかではなく、論理的な観点からパフォーマンスを見ようとしています。 – Mehran

+0

私の更新された答えを見てください。 – cybersam

+0

おかげさまで、(可能であれば)参考文献を含めることができれば幸いです。 – Mehran

関連する問題