View a markdown version of this page

Evita di fare calcoli ~id nella query - Amazon Neptune

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'}]}