Neo4j / Cypher-LIMIT使查询运行更快,尽管返回的结果更少

问题描述 投票:0回答:1

我创建了一个图表,其中包含有关电影的信息以及以剧组或演员身份在这些电影中工作过的人的信息。以下查询用于查找在发行日期之间至少有X年的电影。

MATCH (p:Person)-[r1:CREW]->(m1:Movie), (p:Person)-[r2:CREW]->(m2:Movie)
WHERE r1.job = 'Director' AND r2.job = 'Director' AND m1.movie_id < m2.movie_id
AND ABS(duration.between(m1.release_date, m2.release_date).years) >= 50
RETURN DISTINCT p.id, p.name
LIMIT 1000000

最后的这个LIMIT使得查询实际上可以运行并且非常快。没有该限制,执行将花费很长时间,然后引发堆异常。请注意,如标题中所述,返回的结果约为40-50。对我来说,使用LIMIT可以更快地运行没有意义,因为它实际上并没有限制任何东西……还是?任何帮助表示赞赏。

编辑:我正在使用neo4j版本4.0.4社区版我的图包含约40万个节点和120万个关系。

根据评论的要求:这是使用LIMIT执行的配置文件enter image description here

这是没有限制的说明计划:enter image description here

我创建了一个图表,其中包含有关电影的信息以及以剧组或演员身份在这些电影中工作过的人的信息。以下查询应查找具有至少一个...

neo4j cypher limit
1个回答
0
投票
© www.soinside.com 2019 - 2024. All rights reserved.