>

다른 사람이 프로파일 명령에 대해 배우고 최적화 요구와 Cypher 작동 방식에 대한 Cypher 쿼리의 실행 계획을 이해할 수있는 링크를 설명하거나 제공 할 수 있습니까?

예를 들어, 다음 Neo4j (버전 2.0) 샘플 데이터베이스를 만들었습니다.

create (ayan:Person{name:"Ayan",age:25}), 
(dixi:Person{name:"Dixi",age:26}), 
(thaggu:Person{name:"Thaggu",age:27}), 
(santosh:Person{name:"Santosh",age:28}),
(ayan)-[:FRIEND]-(santosh),
(ayan)-[:FRIEND]-(dixi),
(thaggu)-[:FRIEND]-(dixi);

이제 아래 간단한 쿼리를 실행하면

profile match n:Person, n-[:FRIEND]-m where n.name="Ayan" return m;

다음과 같은 결과를 얻지 만결과 아래의 설명을 이해할 수 없습니다. 도와주세요.

+--------------------------------+
| m                              |
+--------------------------------+
| Node[4]{age:28,name:"Santosh"} |
| Node[2]{age:26,name:"Dixi"}    |
+--------------------------------+
2 rows

==> ColumnFilter(symKeys=["n", "m", "  UNNAMED17"], returnItemNames=["m"], _rows=2, _db_hits=0)
==> PatternMatch(g="(m)-['  UNNAMED17']-(n)", _rows=2, _db_hits=0)
==>   Filter(pred="(Property == Literal(Ayan) AND hasLabel(n: Person))", _rows=1, _db_hits=4)
==>     NodeByLabel(label="Person", identifier="n", _rows=4, _db_hits=0)


  • 답변 # 1

    프로필 정보는 아직 완료되지 않았으므로 문서화되지 않았습니다. 그러나 임계 값은 비싸기 때문에 지나치게 높지 않아야하는 _db_hits입니다.

  • 답변 # 2

    실행 계획 이해

    Neo4j 2.2부터는 문서에 실행 계획을 설명하는 장이 있습니다. 16 장. 실행 계획을 참조하십시오.

    쿼리를 프로파일 링하는 방법

    새로운 프로파일 링 키워드 EXPLAIN 도 있습니다 쿼리를 실행하지 않고 실행 계획을 볼 수 있습니다. 마지막으로 새로운 '비용 기반'( '규칙 기반') 쿼리 플래너가 있으며 모든 쿼리 또는 개별 쿼리에 플래너를 사용할 수 있습니다. 사이퍼 실행 계획을 표시하는 방법이 있습니까?를 참조하십시오. 새로운 프로파일 링 기능 및 관련 문서에 대한 링크에 대한 자세한 내용은

  • 이전 c# - setCurrentCellAddressCore에 재진입 전화를 피하는 방법은 무엇입니까?
  • 다음 r - 숫자 형 벡터가있는 Levenshtein 유형 알고리즘