

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 显式检查属性是否存在
<a name="best-practices-content-9"></a>

 根据 openCypher 语义，当访问属性时，它等同于可选联接，即使该属性不存在，也必须保留所有行。如果您根据图表架构知道该实体将始终存在特定属性，则显式检查该属性的存在可以让查询引擎创建最佳计划并提高性能。

 考虑一个图形模型，其中类型 `person` 的节点始终具有属性 `name`。不应进行如下查询：

```
MATCH (n:person)
RETURN n.name
```

 而应在查询中通过 IS NOT NULL 检查显式验证该属性是否存在：

```
MATCH (n:person)
WHERE n.name IS NOT NULL
RETURN n.name
```