Agrupar entradas usando UNWIND em vez de declarações individuais - Amazon Neptune

Agrupar entradas usando UNWIND em vez de declarações individuais

Sempre que a mesma consulta precisar ser executada para entradas diferentes, em vez de executar uma consulta por entrada, seria muito mais eficiente executar uma consulta para um lote de entradas.

Se você quiser mesclar um conjunto de nós, uma opção é executar uma consulta de mesclagem por entrada:

MERGE (n:Person {`~id`: $id}) SET n.name = $name, n.age = $age, n.employer = $employer

Com parâmetros:

params = {id: '1', name: 'john', age: 25, employer: 'Amazon'}

A consulta acima precisa ser executada para cada entrada. Embora essa abordagem funcione, ela pode exigir que muitas consultas sejam executadas para um grande conjunto de entradas. Nesse cenário, o agrupamento em lotes pode ajudar a reduzir o número de consultas executadas no servidor, bem como melhorar o throughput geral.

Use o seguinte padrão:

UNWIND $persons as person MERGE (n:Person {`~id`: person.id}) SET n += person

Com parâmetros:

params = {persons: [{id: '1', name: 'john', age: 25, employer: 'Amazon'}, {id: '2', name: 'jack', age: 28, employer: 'Amazon'}, {id: '3', name: 'alice', age: 24, employer: 'Amazon'}...]}

Recomenda-se experimentar com diferentes tamanhos de lote para determinar o que funciona melhor para sua workload.