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á.
Use mapas achatados em vez de mapas aninhados na cláusula UNWIND
Uma estrutura aninhada profunda pode restringir a capacidade do mecanismo de consulta de gerar um plano de consulta ideal. Para aliviar parcialmente esse problema, os seguintes padrões definidos criarão planos ideais para os seguintes cenários:
-
Cenário 1: UNWIND com uma lista de literais cifrados, que inclui e. NUMBER STRING BOOLEAN
-
Cenário 2: UNWIND com uma lista de mapas achatados, que inclui somente literais cifrados (NUMBER,,STRING) como valores. BOOLEAN
Ao escrever uma consulta contendo uma UNWIND cláusula, use a recomendação acima para melhorar o desempenho.
Exemplo do cenário 1:
UNWIND $ids as x MATCH(t:ticket {`~id`: x})
Com parâmetros:
parameters={ "ids": [1, 2, 3] }
Um exemplo do Cenário 2 é gerar uma lista de nós para CREATE ouMERGE. Em vez de emitir várias declarações, use o padrão a seguir para definir as propriedades como um conjunto de mapas nivelados:
UNWIND $props as p CREATE(t:ticket {title: p.title, severity:p.severity})
Com parâmetros:
parameters={ "props": [ {"title": "food poisoning", "severity": "2"}, {"title": "Simone is in office", "severity": "3"} ] }
Em vez de objetos de nós aninhados, como:
UNWIND $nodes as n CREATE(t:ticket n.properties)
Com parâmetros:
parameters={ "nodes": [ {"id": "ticket1", "properties": {"title": "food poisoning", "severity": "2"}}, {"id": "ticket2", "properties": {"title": "Simone is in office", "severity": "3"}} ] }