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á.
Preferir direcionar para bordas bidirecionais nas consultas
Quando o Neptune realiza otimizações de consulta, as bordas bidirecionais dificultam a criação de planos de consulta ideais. Planos abaixo do ideal exigem que o mecanismo faça um trabalho desnecessário e ocasionam degradação do desempenho.
Portanto, use bordas direcionadas em vez de bidirecionais sempre que possível. Por exemplo, use:
MATCH p=(:airport {code: 'ANC'})-[:route]->(d) RETURN p)
em vez de:
MATCH p=(:airport {code: 'ANC'})-[:route]-(d) RETURN p)
Na verdade, a maioria dos modelos de dados não precisa percorrer bordas nas duas direções, portanto, as consultas podem obter melhorias significativas no desempenho ao passar a usar bordas direcionadas.
Se o modelo de dados exigir percurso por bordas bidirecionais, faça do primeiro nó (lado esquerdo) no padrão MATCH
o nó com a filtragem mais restritiva.
Veja o exemplo: “Encontre-me em todas as routes
para e do aeroporto ANC
”. Escreva essa consulta para começar no aeroporto ANC
, da seguinte forma:
MATCH p=(src:airport {code: 'ANC'})-[:route]-(d) RETURN p
O mecanismo pode realizar a quantidade mínima de trabalho para atender à consulta, porque o nó mais restrito é colocado como o primeiro nó (lado esquerdo) no padrão. O mecanismo pode então otimizar a consulta.
Essa é de longe a opção preferencial em comparação a filtrar o aeroporto ANC
no final do padrão, desta forma:
MATCH p=(d)-[:route]-(src:airport {code: 'ANC'}) RETURN p
Quando o nó mais restrito não é colocado primeiro no padrão, o mecanismo precisa realizar um trabalho adicional porque não pode otimizar a consulta e precisa realizar pesquisas adicionais para chegar aos resultados.