세분화된 관계 이름을 사용하여 중복 노드 레이블 확인 방지 - Amazon Neptune

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

세분화된 관계 이름을 사용하여 중복 노드 레이블 확인 방지

성능을 최적화할 때 노드 패턴에 독점적인 관계 레이블을 사용하면 노드에서 레이블 필터링을 제거할 수 있습니다. 관계가 두 person 노드 간의 관계를 정의하는 데likes만 사용되는 그래프 모델을 고려해 보세요. 다음 쿼리를 작성하여 이 패턴을 찾을 수 있습니다.

MATCH (n:person)-[:likes]->(m:person) RETURN n, m

n과 m에 대한 person 레이블 확인은 중복됩니다. 관계를 정의했기 때문에 두 유형이 모두 인 경우에만 나타납니다person. 성능을 최적화하기 위해 다음과 같이 쿼리를 작성할 수 있습니다.

MATCH (n)-[:likes]->(m) RETURN n, m

이 패턴은 속성이 단일 노드 레이블에만 있는 경우에도 적용될 수 있습니다. person 노드에만 속성이 있다고 가정email하여 노드 레이블 일치가 중복person되는지 확인합니다. 이 쿼리를 다음과 같이 작성:

MATCH (n:person) WHERE n.email = 'xxx@gmail.com' RETURN n

이 쿼리를 다음과 같이 작성하는 것보다 효율성이 떨어집니다.

MATCH (n) WHERE n.email = 'xxx@gmail.com' RETURN n

성능이 중요하고 모델링 프로세스에서 이러한 엣지 레이블이 다른 노드 레이블과 관련된 패턴에 재사용되지 않도록 확인하는 경우에만 이 패턴을 채택해야 합니다. 나중에 와 같은 다른 노드 레이블에 email 속성을 도입하면 이 두 버전의 쿼리 간에 company결과가 달라집니다.