Coloque nós mais restritivos no lado esquerdo em expressões de caminho de comprimento variável (VLP) - Amazon Neptune

Coloque nós mais restritivos no lado esquerdo em expressões de caminho de comprimento variável (VLP)

Nas consultas de caminho de comprimento variável (VLP), o mecanismo de consulta otimiza a avaliação escolhendo iniciar o percurso do lado esquerdo ou direito da expressão. A decisão é baseada na cardinalidade de padrões no lado esquerdo e direito. A cardinalidade é o número de nós que correspondem ao padrão especificado.

  • Se o padrão correto tiver uma cardinalidade de um, o lado direito será o ponto de partida.

  • Se o lado esquerdo e o direito tiverem cardinalidade de um, a expansão é verificada em ambos os lados e começa no lado com a expansão menor. Expansão é o número de bordas de entrada ou saída do nó à esquerda e à direita da expressão VLP. Essa parte da otimização é usada somente se o relacionamento VLP for unidirecional e for fornecido.

  • Caso contrário, o lado esquerdo será o ponto de partida.

Para uma cadeia de expressões VLP, essa otimização só pode ser aplicada à primeira expressão. As outras VLPs são avaliadas começando pelo lado esquerdo. Como exemplo, a cardinalidade de (a), (b) deve ser um e a cardinalidade de (c) maior que um.

  • (a)-[*1..]->(c): a avaliação começa com (a).

  • (c)-[*1..]->(a): a avaliação começa com (a).

  • (a)-[*1..]-(c): a avaliação começa com (a).

  • (c)-[*1..]-(a): a avaliação começa com (a).

Agora, permita que as bordas de entrada de (a) sejam dois, as bordas de saída de (a) três, as formas de entrada de (b) quatro e as bordas de saída de (b), cinco.

  • (a)-[*1..]->(b): a avaliação começa com (a), pois as bordas de saída de (a) são menores do que as bordas de entrada de (b).

  • (a)<-[*1..]-(b): a avaliação começa com (a), pois as bordas de entrada de (a) são menores do que as bordas de saída de (b).

Como regra geral, coloque o padrão mais restritivo no lado esquerdo de uma expressão VLP.