Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
多线程中的neo4j Session.clear_Neo4j_Spring Data Neo4j_Spring Data Neo4j 4 - Fatal编程技术网

多线程中的neo4j Session.clear

多线程中的neo4j Session.clear,neo4j,spring-data-neo4j,spring-data-neo4j-4,Neo4j,Spring Data Neo4j,Spring Data Neo4j 4,当我在Neo4j中插入大量数据时,Neo4j出现内存问题。在每次大的治疗后添加会话.clear()后,情况都有所好转 我计划为每个插件制作不同的线程。是否必须使用会话.clear()结束所有线程?会产生什么后果?会话。建议在批处理操作期间使用clear()释放内存 稍微分析一下会话正在做什么可能有助于理解为什么应该清除它 假设您总共加载了1000个实体。在会话的每次保存调用中,它都必须检查所有实体是否存在可能的更改,并在需要时保留这些更改(因此检查属性是否更改,以及对象图中的任何关系引用是否也更

当我在Neo4j中插入大量数据时,Neo4j出现内存问题。在每次大的治疗后添加
会话.clear()
后,情况都有所好转

我计划为每个插件制作不同的线程。是否必须使用
会话.clear()结束所有线程?会产生什么后果?

会话。建议在批处理操作期间使用clear()
释放内存

稍微分析一下会话正在做什么可能有助于理解为什么应该清除它

假设您总共加载了1000个实体。在会话的每次保存调用中,它都必须检查所有实体是否存在可能的更改,并在需要时保留这些更改(因此检查属性是否更改,以及对象图中的任何关系引用是否也更改)

如果不处理这些实体,这将非常昂贵

但是,关于您的问题,如果会话不是在线程之间共享的(即每个线程有一个不同的会话),那么在线程中执行大量操作后,可以安全地清除会话


在批插入过程中,您可能需要查看我对这个问题的回答,以了解更多的性能注意事项:

注意会话不是线程安全的,因此请确保每个线程有一个会话。Thabks很多。如何使用neo4j data spring在不同线程中使用不同会话?