

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á.

# Colocar filtros restritivos o mais cedo possível na consulta
<a name="best-practices-content-8"></a>

 Em todos os cenários, colocar filtros na consulta antecipadamente ajuda a reduzir as soluções intermediárias que um plano de consulta deve considerar. Isso significa que menos memória e menos recursos computacionais são necessários para executar a consulta. 

 O exemplo a seguir ajuda você a entender esses impactos. Suponha que você escreva uma consulta para retornar todas as pessoas que moram em `India`. Uma versão da consulta pode ser: 

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

 A versão de consulta acima não é a melhor maneira de alcançar esse caso de uso. O filtro `country.name = 'India'` aparece posteriormente no padrão de consulta. Primeiro, ele coletará todas as pessoas e onde elas moram, as agrupará por país e, em seguida, filtrará somente o grupo para `country.name = India`. O ideal é consultar somente as pessoas que moram em `India` e depois realizar a agregação de coleta. 

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

 Uma regra geral é colocar um filtro o mais rápido possível após a introdução da variável. 