1

我在 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()
      }
   }
}...

但不幸的是,这只是延迟了内存不足错误出现的时间。我确信这个问题与节点创建有关,并且应用程序的其他部分没有其他内存泄漏。所以我想就这个问题寻求帮助。

先感谢您。

4

0 回答 0