2017-01-28 6 views
0

Neo4j documentation을 결정하기는 말한다 :성능에 관계의 방향의 영향과 어떻게

중복 를 만들 필요가 없습니다 있도록 모든 관계는 양 방향으로 횡단 그들이 방향으로 동일하게 을 가지고 있지만 반대 방향의 관계 (트래버 설 또는 성능 관련).

나는 관계 Neo4j에서 어떻게 구현되는지 모르겠지만, 수신 및 발신 관계는, 별도의 세트에 보관하는 경우 그들은 잘 동등하게 아직 당신이 성능에 영향을 미칠 수있는 관계를 설계하는 방법을 통과 되더라도.

내 질문에, 관계의 방향이 글로벌 스키마에서 그래프 데이터베이스의 성능에 영향을 미치는지, 그렇다면 어떻게 결정해야합니까? 예 : 들어오고 나가는 관계의 수를 균형있게 유지합니까?

답변

3

관계 방향은 성능에 영향을주지 않습니다.

디스크에서 노드 레코드는 "첫 번째"관계 (수신 또는 발신)에 대한 레코드 참조 만 유지합니다. 관계 경로의 순회는 주로 관계 레코드를 통해 수행됩니다. 전체 세부 사항은 여기에서 논의하기에 너무 복잡하지만 관계 데이터는 방향성과 관련하여 대칭 적으로 저장됩니다. 따라서 관계 방향의 균형에 대해 걱정할 필요가 없습니다.

+0

확장 해 주시겠습니까? 예 : N 개의 관계가있는 노드가 있다고 가정하십시오. 그들 모두가 퇴임하고 그들 중 하나만에 관심이 있다면, 그들 중 절반이 들어오는 것이 더 좋다면 (당신이 나가는 사람을 찾고 있다고 가정 할 때)? 나는 논리적 인 관점에서 성능을 보려고 노력하지만 Neo4j가 어떻게 구별하지는 않습니다. – Mehran

+0

업데이트 된 답변보기 – cybersam

+0

감사합니다. 가능한 경우 참조를 포함시킬 수도 있습니다. – Mehran