Evita di eseguire 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 eseguire calcoli ~id nella query

Quando usi custom IDs 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 desideri 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, il id valore della sezione viene calcolato nella query. Poiché il calcolo è dinamico, il motore non può incorporare staticamente gli id in linea e finisce per scansionare tutti i nodi della sezione. Il motore esegue quindi il post-filtraggio per i nodi richiesti. Questa operazione può essere costosa se nel database sono presenti molti nodi di sezione.

Un modo migliore per raggiungere questo obiettivo consiste nell'inserire gli ID che vengono passati al database: Sec-

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