我有一个neo4j数据库,有100万个用户节点。我试图从一个400万行的CSV文件中加载这些节点之间的关系。一个用户可以关注另一个用户。此时,查询已经运行了几个小时。是查询有什么问题导致它这么慢吗?
CALL apoc.periodic.iterate(
"LOAD CSV WITH HEADERS FROM 'file:///cleaned_follows_output.csv' AS row RETURN row",
"MATCH (u1 {id: row._s}), (u2 {id: row._t}) MERGE (u1)-[:FOLLOWING]->(u2)",
{batchSize: 10000, parallel: true}
);
字符串
我已经通过运行以下命令在id属性上创建了一个索引:
CREATE INDEX FOR (u: User) ON (u.id)
型
指标:
Index Name Type Uniqueness EntityType LabelsOrTypes Properties State
index_343aff4q LOOKUP NODE null null ONLINE
index_9f2536bf RANGE NODE [ "User" ] [ "id" ] ONLINE
index_f7700478 LOOKUP RELATIONSHIP null null ONLINE
型
1条答案
按热度按时间jgzswidk1#
您的
MATCH
子句必须指定与节点索引关联的 node label(除了node属性),以便Cypher规划器考虑使用该索引。这个查询应该快得多:
字符串