我在 Java 中使用 Neo4j 数据库,我需要在其中放置大量节点,但出现内存不足错误。我设法通过每 1000 个节点提交事务来延迟内存不足,如下所示:
Transaction tx = graphDb.beginTx();
try
{
try (BufferedReader br = Files.newBufferedReader(Paths.get("page_links_en.ttl"), StandardCharsets.UTF_8)) {
int n = 0;
for (String line = null; (line = br.readLine()) != null;) {
n++;
Node node = graphDb.createNode();
node.setProperty("uri",line);
if((n % 1000) == 0){
tx.success();
tx.close();
tx = graphDb.beginTx()
}
}
}...
但不幸的是,这只是延迟了内存不足错误出现的时间。我确信这个问题与节点创建有关,并且应用程序的其他部分没有其他内存泄漏。所以我想就这个问题寻求帮助。
先感谢您。