尽早在查询中放置限制性筛选条件 - Amazon Neptune
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

尽早在查询中放置限制性筛选条件

在所有情况下,在查询中尽早放置筛选条件有助于减少查询计划必须考虑的中间解决方案。这意味着执行查询所需的内存和计算资源更少。

以下示例可帮助您了解这些影响。假设您编写了一个查询来返回居住在 India 的所有人。查询的一个版本可能是:

MATCH (n)-[:lives_in]->(city)-[:part_of]->(country) WITH country, collect(n.firstName + " " + n.lastName) AS result WHERE country.name = 'India' RETURN result

上述版本的查询并不是实现此使用案例的最佳方式。筛选条件 country.name = 'India' 稍后会出现在查询模式中。它将首先收集所有人员及其居住地,然后按国家/地区对他们进行分组,然后仅筛选出 country.name = India 的组。最佳方式是仅查询居住在 India 的人然后执行收集聚合。

MATCH (n)-[:lives_in]->(city)-[:part_of]->(country) WHERE country.name = 'India' RETURN collect(n.firstName + " " + n.lastName) AS result

一般规则是在引入变量后尽快放置筛选条件。