

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

# 세분화된 관계 이름을 사용하여 중복 노드 레이블 확인 방지
<a name="best-practices-content-5"></a>

 성능 최적화를 위해 노드 패턴에 고유한 관계 레이블을 사용하면 노드에 대한 레이블 필터링을 제거할 수 있습니다. 그래프 모델에서 `likes` 관계가 두 `person` 노드 간의 관계 정의에만 사용된다고 가정해 보세요. 이 패턴을 찾기 위해 다음과 같은 쿼리를 작성할 수 있습니다.

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

 `person` 레이블 검사는 n과 m 모두 `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
```

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