>

여기서 유효성을 확인하면 -유효 : 반품 레코드 -유효하지 않음 : 검색어에 의해 반환 된 레코드가 없습니다

neo4j 내부에 내장 함수가있어서 쿼리를 실행하지 않고 신속하게 유효성을 검사 할 수 있습니다. 예를 들어 스키마 검사와 같은 것입니다.

내가하고 싶은 일
결과가 많은 쿼리를 얻을 수 있도록 신속하게 유효한 많은 쿼리가 있습니다. 모든 검색어를 실행하는 데 따른 문제는 일부 검색어를 실행하는 데 많은 시간이 소요되어 다음과 같은 검색어의 실행이 차단 될 수 있다는 것입니다.

임시 솔루션
내가 찾는 한 가지 방법은 LIMIT 1 를 사용하는 것입니다. 쿼리가 끝날 때 레코드가 많을 때 쿼리가 없으면 쿼리보다 훨씬 빠를 수 있지만 여전히 쿼리는 neo4j 데이터베이스 내에서 실행됩니다

감사합니다,


  • 답변 # 1

    하나의 옵션은 EXPLAIN 로 쿼리 앞에 추가하는 것입니다  해당 쿼리를 실행하십시오. 와이즈 비즈  쿼리에 대한 실행 계획을 생성하는 데 사용되지만 쿼리를 데이터베이스 통계와 비교하여 메타 데이터도 생성합니다. 예를 들어, 쿼리에 데이터베이스에없는 노드 레이블이 포함 된 경우 메타 데이터에 경고가 반환됩니다. 실행 계획에는 각 작업에서 반환 될 예상 행도 포함됩니다.

    EXPLAIN 로 쿼리를 추가 할 때 Neo4j 브라우저에서이 메타 데이터를 모두 볼 수 있습니다 . Neo4j 클라이언트 드라이버 중 하나를 사용하여 EXPLAIN 에서이 정보에 액세스 할 수 있습니다  object (예를 들어, 자바 스크립트 드라이버 문서는 링크되어 있습니다.)

  • 답변 # 2

    쿼리가 무엇을 반환하는지 확인하는 유일한 방법은 실제로 실행하는 것입니다. 그러나 실제 ( "메인") DB에서 실행할 필요는 없습니다.

    데이터 모델이 기본 DB의 모델과 일치하는 더 작은 테스트 DB에 대해 쿼리를 실행할 수 있습니다. 또한 쿼리가 무엇을 반환해야하는지 미리 알 수 있도록 테스트 데이터를 조정할 수도 있습니다.

    이를 쉽게하기 위해 Neo4j Desktop은 편리하게 각각 자체 DB를 가진 여러 개의 "프로젝트"를 생성 할 수 있습니다

    [편집 됨]

    이 프로세스를 좀 더 자동화하려면 APOC 프로 시저를 사용하여 DB 하위 세트를 내보내거나 가져 오는이 예제를 살펴보아야합니다. 귀하의 경우 기본 DB에서 내보내고 빈 DB로 가져옵니다. 이 예제의 Cypher 코드는 복사 할 제한된 수의 노드와 관계를 임의로 선택하지만보다 정교한 Cypher 코드를 사용하여 원하는 데이터를 얻을 수 있습니다.

    ResultSummary

관련 자료

  • 이전 mysql - 숫자 ( "2abcd")로 시작하는 pdo php 문자열 입력은 $stmt-> bindparam ( ' - id', $id)에서 숫자 ( "2")로만 트리밍됩니다
  • 다음 Angular 2 - 각도 2 - * ngif가없는 5 개의 애니메이션