약 1 천만 개의 노드가 포함 된 Neo4J 그래프를 사용하는 응용 프로그램과 함께 작업하고 있습니다. 매일 실행하는 주요 작업 중 하나는 그래프에 새 노드 또는 업데이트 된 노드를 일괄 적으로 가져 오는 것으로 약 1-2 백만 건의 순서입니다. Cypher 쿼리 언어와 함께 Python 스크립트를 실험 한 후에 더 나은 성능 결과를 얻기 위해 Java API를 사용하여 포함 된 그래프를 제공하기로 결정했습니다.Neo4J 용 Cypher를 사용하여 Java API와 Python 성능 비교
내가 발견 한 것은 기본 Java API를 사용하여 약 5 배 개선 된 것입니다. 나는 최신이라고 믿는 Neo4j 2.1.4를 사용하고 있습니다. 나는 다른 글에서 임베디드 그래프가 조금 더 빠르다고 읽었지만, 가까운 장래에 바뀔 수 있어야한다. 비슷한 결과를 얻은 다른 사람들과 내 결과를 검증하고 싶습니다.
나는 아래의 스 니펫을 사용하여 일반적인 방법을 사용했습니다. 코드가 크게 단순화되었습니다. 사이퍼/파이썬에서
샘플 : 포함 된 그래프에서
cnode = self.graph_db.create(node(hash = obj.hash,
name = obj.title,
date_created = str(datetime.datetime.now()),
date_updated = str(datetime.datetime.now())
))
샘플은 자바를 사용하여 :
final Node n = Graph.graphDb.createNode();
for (final Label label : labels){
n.addLabel(label);
}
for (Map.Entry<String, Object> entry : properties.entrySet()) {
n.setProperty(entry.getKey(), entry.getValue());
}
당신의 통찰력 주셔서 감사합니다!