我正在使用Neo4j社区版。我在neo4j中创建了13m节点。然后,从CSV文件创建关系。这个过程太慢了。
LOAD CSV WITH HEADERS FROM "file:///re.CSV" AS csvLine
WITH csvLine
LIMIT 3
MATCH(p:actor), (m:movie)
WHERE m.mid=toInteger(csvLine.mid)
AND p.pid=toInteger(csvLine.pid)
CREATE(p)-[a:Acted{ptime:csvLine.ptime}]->(m)
Set 3 properties, created 3 relationships, completed after 128618 ms.
我很感激对此问题的任何帮助。
答案 0 :(得分:1)
您引用的索引(CREATE INDEX ON :movie(name,mid) CREATE INDEX ON :actor(name,pid)
)用于复合索引,这要求所有索引属性都存在以供查找。
但是在你的查询中,你只是通过pid(不是pid和名字)获得演员,而是通过mid(不是mid和名字)获得电影。如果要通过单个属性索引查找,请仅在该属性上创建索引。
另外,请查询您的查询以查看查询计划(如果可以,请查看PROFILE,但仅适用于完成执行的查询)。这通常可以为您提供关于是否正在使用索引查找的提示,或者它是否会回退到标签扫描。