Evite verificações redundantes de rótulos de nós usando nomes de relacionamento granulares - Amazon Neptune

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.