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á.
Evite verificações redundantes de rótulos de nós usando nomes de relacionamento granulares
Ao otimizar o desempenho, o uso de rótulos de relacionamento exclusivos dos padrões de nós permite a remoção da filtragem de rótulos nos nós. Considere um modelo gráfico em que o relacionamento likes
é usado apenas para definir um relacionamento entre dois person
nós. Poderíamos escrever a seguinte consulta para encontrar esse padrão:
MATCH (n:person)-[:likes]->(m:person) RETURN n, m
A verificação do person
rótulo 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 de um único rótulo de nó. Suponha que somente person
os nós tenham a propriedadeemail
, portanto, verificar a correspondência do rótulo do nó person
é redundante. Escrevendo essa consulta como:
MATCH (n:person) WHERE n.email = 'xxx@gmail.com' RETURN n
É menos eficiente do que escrever essa consulta como:
MATCH (n) WHERE n.email = 'xxx@gmail.com' RETURN n
Você só deve adotar esse padrão quando o desempenho for importante e tiver verificações em seu processo de modelagem para garantir que essas etiquetas de borda não sejam reutilizadas para padrões envolvendo outras etiquetas de nós. Se você introduzir posteriormente uma email
propriedade em outro rótulo de nócompany
, como, os resultados serão diferentes entre essas duas versões da consulta.