Evite usar a cláusula WITH quando possível - Amazon Neptune

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Evite usar a cláusula WITH quando possível

A cláusula WITH no OpenCypher atua como um limite em que tudo antes de ser executado e, em seguida, os valores resultantes são passados para as partes restantes da consulta. A cláusula WITH é necessária quando você precisa de agregação provisória ou deseja limitar o número de resultados, mas, além disso, você deve tentar evitar o uso da cláusula WITH. A orientação geral é remover essas cláusulas WITH simples (sem agregação, ordem por ou limite) para permitir que o planejador de consultas trabalhe em toda a consulta para criar um plano globalmente ideal. Por exemplo, suponha que você tenha escrito uma consulta para retornar todas as pessoas que moram emIndia:

MATCH (person)-[:lives_in]->(city) WITH person, city MATCH (city)-[:part_of]->(country {name: 'India'}) RETURN collect(person) AS result

Na versão acima, a cláusula WITH restringe o posicionamento do padrão (city)-[:part_of]->(country {name: 'India'}) (que é mais restritivo) anterior. (person)-[:lives_in]->(city) Isso torna o plano abaixo do ideal. Uma otimização dessa consulta seria remover a cláusula WITH e permitir que o planejador calculasse o melhor plano.

MATCH (person)-[:lives_in]->(city) MATCH (city)-[:part_of]->(country {name: 'India'}) RETURN collect(person) AS result