키워드 DISTINCT
과 관련하여 간단한 질문이 있습니다. 따라서 기본적으로 수백만 개의 노드가있는 그래프 (User- [Likes] -> Item)가 있습니다. 나는 특정 항목을 좋아하는 독특한 사용자를 찾고 싶다. 다음 두 쿼리는 성능 차이가 크며 혼란 스럽습니다. 나는 Item (id) 및 : User (id)의 색인을 작성한다.키워드가 뚜렷한 Neo4j 쿼리 성능
쿼리 1 :
profile match (a:Item {id:'001'})<-[:LIKES]-(u:User)
return count(distinct u);
질의 2 :
profile match (a:Item {id:'001'})<-[:LIKES]-(u:User)
return distinct u;
첫 번째 쿼리 반환 초 결과,하지만 두 번째 쿼리가 5 분 이상 계속 실행하고 나는 환자를 잃고 쿼리를 중지 . 계산 집계 연산이 없기 때문에 두 번째 쿼리가 첫 번째 쿼리보다 빠르다고 생각 했으므로 성능 차이를 이해할 수 없습니다.
첫 번째 쿼리는 단일 숫자를 반환하지 않지만 두 번째 쿼리는 수천 (또는 * 수백만 *)의 노드를 반환합니다. –
드라이버에서 두 번째 쿼리를 실행하거나 마지막에 LIMIT 100 정도를 추가해야합니다. –