

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Posiziona filtri restrittivi il più presto possibile nella query
<a name="best-practices-content-8"></a>

 In tutti gli scenari, il posizionamento precoce dei filtri nella query aiuta a ridurre le soluzioni intermedie che un piano di query deve prendere in considerazione. Ciò significa che sono necessarie meno memoria e meno risorse di elaborazione per eseguire la query. 

 L'esempio seguente aiuta a comprendere questi impatti. Supponiamo di scrivere una query per restituire tutte le persone che vivono in`India`. Una versione della query potrebbe essere: 

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

 La versione precedente della query non è il modo migliore per ottenere questo caso d'uso. Il filtro `country.name = 'India'` viene visualizzato più avanti nel modello di interrogazione. Innanzitutto raccoglierà tutte le persone e il luogo in cui vivono, le raggrupperà per paese, quindi filtrerà solo per il gruppo di`country.name = India`. Il modo ottimale per eseguire query solo per le persone che vivono in zona `India` e quindi eseguire l'aggregazione di raccolta. 

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

 Una regola generale consiste nell'inserire un filtro il prima possibile dopo l'introduzione della variabile. 