Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Evita di fare calcoli ~id nella query
Quando utilizzi ID personalizzati nelle query, esegui sempre calcoli statici all'esterno delle query e fornisci questi valori nei parametri. Quando vengono forniti valori statici, il motore è in grado di ottimizzare meglio le ricerche ed evitare la scansione e il filtraggio di questi valori.
Se si desidera creare bordi tra i nodi esistenti nel database, un'opzione potrebbe essere:
UNWIND $sections as section MATCH (s:Section {`~id`: 'Sec-' + section.id}) MERGE (s)-[:IS_PART_OF]->(g:Group {`~id`: 'g1'})
Con parametri:
parameters={sections: [{id: '1'}, {id: '2'}]}
Nella query precedente, la id parte della sezione viene calcolata nella query. Poiché il calcolo è dinamico, il motore non può inserire staticamente gli ID e finisce per scansionare tutti i nodi della sezione. Il motore esegue quindi il post-filtraggio per i nodi richiesti. Questo può essere costoso se nel database sono presenti molti nodi di sezione.
Un modo migliore per ottenere ciò è Sec- anteporre gli ID che vengono passati al database:
UNWIND $sections as section MATCH (s:Section {`~id`: section.id}) MERGE (s)-[:IS_PART_OF]->(g:Group {`~id`: 'g1'})
Con parametri:
parameters={sections: [{id: 'Sec-1'}, {id: 'Sec-2'}]}