쿼리에서 가능한 한 빨리 제한 필터를 배치합니다. - Amazon Neptune

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

쿼리에서 가능한 한 빨리 제한 필터를 배치합니다.

모든 시나리오에서 쿼리에 필터를 조기에 배치하면 쿼리 계획이 고려해야 하는 중간 솔루션을 줄이는 데 도움이 됩니다. 즉, 쿼리를 실행하는 데 필요한 메모리와 컴퓨팅 리소스가 줄어듭니다.

다음 예제는 이러한 영향을 이해하는 데 도움이 됩니다. 에 거주하는 모든 사람을 반환하는 쿼리를 작성한다고 가정해 보겠습니다India. 쿼리의 한 가지 버전은 다음과 같습니다.

MATCH (n)-[:lives_in]->(city)-[:part_of]->(country) WITH country, collect(n.firstName + " " + n.lastName) AS result WHERE country.name = 'India' RETURN result

위의 쿼리 버전은 이 사용 사례를 달성하는 가장 좋은 방법이 아닙니다. 필터는 나중에 쿼리 패턴에 country.name = 'India' 나타납니다. 먼저 모든 사람과 거주지를 수집하고 국가별로 그룹화한 다음 의 그룹만 필터링합니다country.name = India. 에 거주하는 사람만 쿼리India한 다음 수집 집계를 수행하는 최적의 방법입니다.

MATCH (n)-[:lives_in]->(city)-[:part_of]->(country) WHERE country.name = 'India' RETURN collect(n.firstName + " " + n.lastName) AS result

일반적인 규칙은 변수가 도입된 후 가능한 한 빨리 필터를 배치하는 것입니다.