가능한 경우 WITH 절 사용 안 함
openCypher의 WITH 절은 모든 항목이 실행되기 전에 결과 값이 쿼리의 나머지 부분으로 전달되는 경계 역할을 합니다. WITH 절은 중간 집계가 필요하거나 결과 수를 제한하려는 경우에 필요하지만 WITH 절을 사용하지 않도록 해야 합니다. 일반적인 지침은 이러한 간단한 WITH 절(집계, 순서 또는 제한 없음)을 제거하여 쿼리 플래너가 전체 쿼리에서 작업하여 전역적으로 최적의 계획을 생성할 수 있도록 하는 것입니다. 예를 들어 India에 거주하는 모든 사람을 반환하는 쿼리를 작성했다고 가정해 보겠습니다.
MATCH (person)-[:lives_in]->(city) WITH person, city MATCH (city)-[:part_of]->(country {name: 'India'}) RETURN collect(person) AS result
위 버전에서 WITH 절은 패턴 (person)-[:lives_in]->(city)(더 제한적인 조건)을 (city)-[:part_of]->(country {name: 'India'}) 앞에 배치하도록 강제합니다. 이렇게 하면 계획이 최적화되지 않습니다. 이 쿼리를 최적화하려면 WITH 절을 제거하고 플래너가 최상의 실행 계획을 계산하도록 해야 합니다.
MATCH (person)-[:lives_in]->(city) MATCH (city)-[:part_of]->(country {name: 'India'}) RETURN collect(person) AS result