在neo4j中创建一个新的关系需要很长时间(超过488000毫秒)

h9a6wy2h  于 2023-03-12  发布在  其他
关注(0)|答案(1)|浏览(87)

这个密码查询占用488000毫秒的原因可能是什么?

MATCH (u:User {objectId: 'idUusera'}) 
MATCH (a:Action {objectId: 'idActiona'}) 
MERGE (u)-[r:CREATED]->(a)

这个数据库包含了成千上万的动作,但这只发生在某些用户身上。已经有了一个关于User.objectId和Action.objectId的索引

6jjcrrmo

6jjcrrmo1#

这里有一个可能的解释。
MERGE子句需要验证该关系是否已经存在。因此,它需要扫描ua的 * 所有 * CREATED关系。在您的数据库中,通常User的此类关系比Action的少。因此,密码计划者已经决定扫描u的所有输出CREATED关系以验证a不在另一侧。
然而,一些User节点可能有大量的传出CREATED关系,对于这样的用户,扫描可能需要很长时间。

相关问题