Neo4j 如何提高大规模合并插入的性能?
我正在尝试将SQL db中的数据插入Neo4J。我有一个CSV文件,其中每行生成4-5个实体以及它们之间的一些关系。行之间的实体可能重复,我希望强制唯一性 我现在做的是:Neo4j 如何提高大规模合并插入的性能?,neo4j,Neo4j,我正在尝试将SQL db中的数据插入Neo4J。我有一个CSV文件,其中每行生成4-5个实体以及它们之间的一些关系。行之间的实体可能重复,我希望强制唯一性 我现在做的是: 为每个标签创建约束以强制唯一性 迭代CSV: 启动事务 为实体创建合并语句 为关系创建合并语句 提交事务 我的成绩不好。然后我尝试每X行提交一次事务(X为100、500、1000和5000)。现在好多了,但我还有两个问题: 很慢。平均每100行大约1-1.5秒。(行=4-5个实体和4-5个关系) 随着我不断添加数据,
- 为每个标签创建约束以强制唯一性
- 迭代CSV:
- 启动事务
- 为实体创建合并语句
- 为关系创建合并语句
- 提交事务
- 很慢。平均每100行大约1-1.5秒。(行=4-5个实体和4-5个关系)
- 随着我不断添加数据,情况越来越糟。我通常从每100行400-500毫秒开始,在5000行之后,每100行4-5秒
谢谢我正在处理同样的问题。看看我的一些SO问题,看看我试过的东西。我将尝试筛选id,以便使用1个匹配项和1个合并项进行批处理。按此so:中建议的id筛选不起作用。您使用哪个驱动程序以编程方式从CSV生成insert语句?是否需要合并?我发现CREATE的速度快了一个数量级,并且导致的db命中率更低。尝试使用PROFILE运行一个小查询;首先使用MERGE,然后使用CREATE,看看它是否对您有帮助。