在neo4j图数据库中插入一个庞大的集合

时间:2014-02-20 05:02:27

标签: database graph 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 个答案:

答案 0 :(得分:1)

如果要更好地插入大数据集,请使用批量插入。请参阅here

更多信息:herehere

此外,您还必须调整neo4j服务器配置以获得更好的性能。请参阅:here