

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

# Evitar verificações redundantes de rótulos de nó usando nomes de relacionamento granulares
<a name="best-practices-content-5"></a>

 Ao otimizar o desempenho, usar rótulos de relacionamento exclusivos dos padrões do nó permite a remoção da filtragem de rótulos nos nós. Considere um modelo de grafo em que o relacionamento `likes` é usado somente para definir um relacionamento entre dois nós `person`. Poderíamos escrever a seguinte consulta para encontrar esse padrão: 

```
MATCH (n:person)-[:likes]->(m:person)
RETURN n, m
```

 A verificação do rótulo `person` em n e m é redundante, pois definimos que o relacionamento só apareça quando ambos forem do tipo `person`. Para otimizar o desempenho, podemos escrever a consulta da seguinte forma: 

```
MATCH (n)-[:likes]->(m)
RETURN n, m
```

 Esse padrão também pode ser aplicado quando as propriedades são exclusivas a um rótulo de nó único. Suponha que somente os nós `person` tenham a propriedade `email`, portanto, verificar a correspondência do rótulo do nó `person` é redundante. Escrever a consulta como: 

```
MATCH (n:person)
WHERE n.email = 'xxx@gmail.com'
RETURN n
```

 É menos eficiente do que escrever a consulta como: 

```
MATCH (n)
WHERE n.email = 'xxx@gmail.com'
RETURN n
```

 Adote esse padrão somente quando o desempenho for importante e tiver verificações em seu processo de modelagem para garantir que esses rótulos de borda não sejam reutilizados para padrões envolvendo os rótulos de nó. Se você introduzir posteriormente uma propriedade `email` em outro rótulo de nó, como `company`, os resultados serão diferentes entre essas duas versões da consulta. 