如何提高大量MERGE插入的性能?

时间:2014-03-02 15:51:51

标签: neo4j

我正在尝试将数据从我的SQL数据库插入到Neo4J中。我有一个CSV文件,其中每行生成4-5个实体以及它们之间的某些关系。实体可能在行之间重复,我想强制唯一性。

我目前所做的是:

  • 为每个标签创建约束以强制唯一性。
  • 迭代CSV:
    • 启动交易
    • 为实体创建合并声明
    • 为关系创建合并声明
    • 提交交易

我的结果不好。然后我尝试每X行(X为100,500,1000和5000)提交事务。它现在好些但我还有两个问题:

  • 它很慢。每100行平均约1-1.5秒。 (行= 4-5个实体和4-5个关系)。
  • 随着我不断添加数据,情况越来越糟。我通常以每100行400-500毫秒开始,在大约5000行之后,我每100行大约4-5秒。

据我所知,我的约束也为该字段创建了一个索引。这是我用MERGE创建新节点时使用的字段。有没有机会不使用索引?

提高性能的最佳做法是什么?我看到了BatchInserter,但不确定我是否可以将它用于MERGE操作。

由于

0 个答案:

没有答案