Evite fazer cálculos de ~id na consulta - 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 fazer cálculos de ~id na consulta

Ao usar IDs customização nas consultas, sempre realize cálculos estáticos fora das consultas e forneça esses valores nos parâmetros. Quando valores estáticos são fornecidos, o mecanismo é mais capaz de otimizar as pesquisas e evitar a digitalização e a filtragem desses valores.

Se você quiser criar bordas entre os nós existentes no banco de dados, uma opção pode ser:

UNWIND $sections as section MATCH (s:Section {`~id`: 'Sec-' + section.id}) MERGE (s)-[:IS_PART_OF]->(g:Group {`~id`: 'g1'})

Com parâmetros:

parameters={sections: [{id: '1'}, {id: '2'}]}

Na consulta acima, o id da seção está sendo computado na consulta. Como a computação é dinâmica, o mecanismo não pode embutir identificações estaticamente e acaba escaneando todos os nós da seção. Em seguida, o mecanismo executa a pós-filtragem dos nós necessários. Isso pode ser caro se houver muitos nós de seção no banco de dados.

A melhor maneira de fazer isso é Sec- prefixar os ids que estão sendo passados para o banco de dados:

UNWIND $sections as section MATCH (s:Section {`~id`: section.id}) MERGE (s)-[:IS_PART_OF]->(g:Group {`~id`: 'g1'})

Com parâmetros:

parameters={sections: [{id: 'Sec-1'}, {id: 'Sec-2'}]}