我该如何优化这个 neo4j 查询?

How can I optimize this neo4j query?

查询是为了从 Grouplens 数据集中加载 100 万个评分。我已经为用户和电影创建了节点,现在正在将它们合并到与电影的关系中。

load csv from "file:///ratings.csv" as row fieldterminator ';' 
MERGE (u:User {userID:toInt(row[0])} ) 
MERGE (m:Movie {movieID:toInt(row[1])} ) 
MERGE (u)-[r:RATING {value:toInt(row[3])} ]->(m)

在 JVM(笔记本电脑,4GB RAM)中分配 2GB RAM 时,此查询需要很长时间,尽管在 4-6 GB RAM(台式机)上 运行s 相当快。另外,我有关于用户和电影的索引以及它们各自的 ID。

此查询的配置文件如下所示-

数据库的命中率看起来很反常,我想我可以优化这个查询。

(跟进问题): 我如何 运行 在 neo4j-shell 中优化密码查询?这是正确的语法吗 -

start [CYPHER_QUERY] ;

尝试USING PERIODIC COMMIThttp://neo4j.com/docs/stable/query-periodic-commit.html

此外,考虑在最后一行使用 CREATE 而不是 MERGE 来创建关系,因为我假设您的 .csv 文件中没有重复评分。