在 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 万个项目的列表。

任何线索如何使它运行得更快?

如果要

插入大数据集,最好使用批量插入。参考这里

更多信息 : 这里 和 这里

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

相关内容

最新更新