2017-11-25 7 views
0

추가 노드를 만들어 추가 속성을 저장하는 것이 좋은가요? 예 : 사용자 노드, 사용자 데이터 노드. 사용자 데이터에 많은 양의 데이터가있을 경우 사용자 노드 만 관련된 쿼리에서 메모리 최적화에 도움이됩니까?부모 노드의 속성 만 저장하기위한 노드 만들기

부모 노드 자체의 속성으로 모든 데이터를 저장하면 아무런 차이가 없습니까?

+0

중요한 차이가 있다고 생각하지 않습니다. 잠재적으로 얼마나 많은 속성에 대해 이야기하고 있습니까? –

+1

많은 쿼리에 따라 다릅니다! Neo4j는 모든 노드의 속성을 체인으로 저장합니다. 따라서 사용자의 모든 소품을 얻으려면 Neo4j가 rel을 트래버스해야하기 때문에'데이터 사용자 '노드를 갖는 것이 더 나을 것입니다. – logisima

+0

@GaborSzarnyas 지금은 속성이 거의 없습니다 (4-5). 그러나 잠재적으로 500에서 600 개의 속성으로 이동할 수 있습니다. –

답변

1

Neo4j는 그래프 트래버 설 + 편리한 DBMS (MongoDB와 같은 문서 기반 DBMS)에 600 개의 속성을 저장하기위한 다른 DBMS에만 사용해야한다고 생각합니다.

내 경험에 의하면 Neo4j는 MongoDB에 비해 조회가 빠르지 않습니다. 또한 스토리지에서 그렇게 효율적이지 않습니다.

모든 노드에서 600 개의 평면 속성이 디자인 실수로 보입니다.

또한 Arango 또는 Orient와 같은 하이브리드 Graph-Document 솔루션을 볼 수 있습니다. 그러나 저는 Mongo + Neo4j를 사용하는 프로젝트에 대한 신뢰성이 확실하지 않습니다.