

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Inserción de filtros restrictivos lo antes posible en la consulta
<a name="best-practices-content-8"></a>

 Siempre que sea posible, coloque los filtros al principio de la consulta, ya que esto ayuda a reducir las soluciones intermedias que debe considerar un plan de consulta. De este modo, se necesitará menos memoria y menos recursos de computación para ejecutar la consulta. 

 El siguiente ejemplo le ayudará a comprender estas repercusiones. Supongamos que escribe una consulta para obtener todas las personas que viven en `India`. Una versión de la consulta podría ser: 

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

 La versión anterior de la consulta no es la forma más óptima de lograr este caso de uso. El filtro `country.name = 'India'` aparece más adelante en el patrón de consulta. Primero recopilará todas las personas y su lugar de residencia, las agrupará por país y, a continuación, filtrará solo por el grupo correspondiente a `country.name = India`. La forma más óptima es consultar solo las personas que viven en `India` y, a continuación, realizar la agregación de recopilación. 

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

 Por regla general, se debe colocar el filtro lo antes posible después de introducir la variable. 