我目前正通过spring数据库使用neo4j 2.3.3。 我在Window 7 OS上运行并使用Java 1.8作为JVM。 我正在以嵌入模式运行。
我正在拯救大约20,000个关系及其关注 15分钟。 节点已存在于数据库中。
我最终使用以下方法执行保存。
@Repository
public class GraphRepositoryImpl<T> implements GraphRepository<T> {
:
@Override
public <S extends T> Iterable<S> save(Iterable<S> ses, int depth) {
neo4jOperations.save(ses, depth);
return ses;
}
:
}
注意:我已经尝试将深度设置为0和-1,但似乎没有 改变节省时间。
我使用Java Mission Control描述了可执行文件,并注意到了这一点 它在以下方法中花费了20%的时间:
org.neo4j.kernel.impl.api.store.StorePropertyPayloadCursor.currentBlocksUsed() 7,176 19.846%
最终来自:
org.neo4j.cypher.internal.compatibility.CompatibilityFor2_3$ExecutionPlanWrapper.run(GraphDatabaseAPI, TransactionInfo, CypherExecutionMode, Map, QuerySession) 7,658 21.179%
实际的保存挂钩占用了大约10%的时间:
org.springframework.data.neo4j.template.Neo4jTemplate.save(Object, int) 3,817 10.556%
我也有JMC录音;见this link。