

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 儘早在查詢中放置限制性篩選條件
<a name="best-practices-content-8"></a>

 在所有案例中，在查詢中提早放置篩選條件有助於減少查詢計劃必須考慮的中繼解決方案。這表示執行查詢所需的記憶體和運算資源較少。

 下列範例可協助您了解這些影響。假設您撰寫查詢，以傳回所有住在 的人員`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
```

 一般規則是在引入變數後盡快放置篩選條件。