2014-02-20 54 views
0

我想插入一個相對大的節點集合到一個neo4j數據庫。我有大約一百萬個節點。插入一個巨大的集合到neo4j圖形數據庫

最初的100,000個節點插入相當快。然而,速度逐漸降低。在大約300,000個節點之後,每個節點插入需要一分多鐘。

public void writeXmlElements(List<XmlElement> elements){ 
    GraphDatabaseService graphDb = Neo4jDatabaseHandler.getGraphDatabase(); 
    int count = 0; 
    try (Transaction tx = graphDb.beginTx()) 
    { 
     for (XmlElement element : elements) { 
      count++; 
      LOGGER.info("Processing "+count+" out of "+elements.size()); 
      Node node = graphDb.createNode(); 
      node.setProperty(XmlElements.NAME.getValue(), element.getTagName()); 
      node.setProperty(XmlElements.VALUE.getValue(), element.getTagValue());    
      tx.success(); 
     } 
    } 

} 

我這樣做很簡單,遍歷100萬個物品的列表。

任何線索我如何使它運行得更快?

回答

1

如果想要更好地插入大數據集,請使用批插入。請參閱here

一些更多的信息:herehere

而且你必須調整你的Neo4j服務器配置有更好的表現。請參考:here

+0

謝謝男人..批量插入做了伎倆.. –

相關問題