COLLECT(DISTINCT()) 사용 안 함 - Amazon Neptune

COLLECT(DISTINCT()) 사용 안 함

COLLECT(DISTINCT())는 고유한 값을 포함하는 목록을 구성할 때마다 사용됩니다. COLLECT는 집계 함수이며 동일한 문에 프로젝션되는 추가 키를 기반으로 그룹화가 수행됩니다. 고유를 사용하면 입력이 여러 청크로 분할되며, 각 청크는 축소할 그룹 하나를 나타냅니다. 그룹 수가 증가하면 성능에 영향을 미칩니다. Neptune에서는 목록을 실제로 수집/구성하기 전에 DISTINCT를 수행하는 것이 훨씬 더 효율적입니다. 이렇게 하면 전체 청크의 그룹화 키에서 직접 그룹화를 수행할 수 있습니다.

다음과 같은 쿼리를 가정합니다.

MATCH (n:Person)-[:commented_on]->(p:Post) WITH n, collect(distinct(p.post_id)) as post_list RETURN n, post_list

이 쿼리를 작성하는 보다 최적의 방법은 다음과 같습니다.

MATCH (n:Person)-[:commented_on]->(p:Post) WITH DISTINCT n, p.post_id as postId WITH n, collect(postId) as post_list RETURN n, post_list