동일한 값을 갖는 문자열 속성이 실제로있는 노드 유형이 있습니다. 그 문자열 값의 옵션이 5 개 밖에없는 수백만 개의 노드. 나는 그 재산에 의한 수색을 할 것이다.Neo4j 디자인 : 속성 대 "노드 및 관계"
내 질문에 성능과 메모리면에서 무엇이 더 좋을까요? a) 노드 속성으로 구현하고 중복 된 부분이 많습니다 (그리고 WHERE를 사용하여 검색). b) 5 개의 추가 노드로 구현합니다. 모든 원래 노드는 그 중 하나를 참조합니다 (추가 MATCH를 사용하여 검색).
난 정말 관계 유형으로 값을 사용하는 아이디어를 좋아하는이 블로그 게시물이 새로운 Neo4j 2.0 기능에 좋은 소개입니다. 그렇다면이 새로운 관계를 가리킬 데이터가없는 쓸모없는 노드가 하나만 필요합니다. 또 다른 질문은 다음과 같습니다. 단일 노드에 대한 백만 건의 관계에 성능 문제가 있습니까? 나는 그 노드에서 어떤 검색도하지 않을 것이다. 또한 루트 노드를 사용하는 것이 합리적일까요? – Martynas
해당 노드로만 이동하는 한 성능 저하가 없습니다. 만약 당신이 다른 방향으로 나아 간다면, 당연히 1 백만의 관계를 조사해야 할 것입니다. –
루트 노드를 사용하지 않는 것이 좋습니다.루트 노드에 연결된 새로운 노드를 만들 수 있습니다. 그렇지 않으면 내 생각에 나쁜 모델링 전략 인 여러 다른 개념으로 루트 노드를 채울 수 있습니다. –