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 COLLECT (DISTINCT())
COLLECT(DISTINCT()) é usado sempre que uma lista deve ser formada contendo valores distintos. COLLECTé uma função de agregação e o agrupamento é feito com base em chaves adicionais projetadas na mesma instrução. Quando distinto é usado, a entrada é dividida em vários blocos, onde cada pedaço denota um grupo para redução. O desempenho será afetado à medida que o número de grupos aumentar. Em Neptune, é muito mais eficiente DISTINCT executar antes de realmente coletar/formar a lista. Isso permite que o agrupamento seja feito diretamente nas chaves de agrupamento de todo o bloco.
Considere a seguinte consulta:
MATCH (n:Person)-[:commented_on]->(p:Post) WITH n, collect(distinct(p.post_id)) as post_list RETURN n, post_list
Uma maneira mais ideal de escrever essa consulta é:
MATCH (n:Person)-[:commented_on]->(p:Post) WITH DISTINCT n, p.post_id as postId WITH n, collect(postId) as post_list RETURN n, post_list