View a markdown version of this page

Updating/Merging mehrere Knoten - Amazon Neptune

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Updating/Merging mehrere Knoten

Bei der Ausführung MERGE von CREATE Abfragen auf mehreren Knoten wird empfohlen, eine Klausel UNWIND in Kombination mit einer einzelnen MERGE/CREATE Klausel zu verwenden, anstatt eine MERGE/CREATE Klausel für jeden Knoten zu verwenden. Abfragen, die eine Klausel für einen Knoten verwenden, führen zu einem ineffizienten Ausführungsplan, da jede Zeile optimiert werden muss. Dies führt dazu, dass der Großteil der Ausführungszeit der Abfrage für die statische Verarbeitung und nicht für die eigentliche Aktualisierung aufgewendet wird.

Eine Klausel pro Knoten ist nicht optimal, da sie nicht mit steigender Anzahl von Knoten skaliert wird:

MERGE (p1:Person {name: 'NameA'}) ON CREATE SET p1 += {prop1: 'prop1V1', prop2: 'prop2V1'} MERGE (p2:Person {name: 'NameB'}) ON CREATE SET p2 += {prop1: 'prop1V2', prop2: 'prop2V2'} MERGE (p3:Person {name: 'NameC'}) ON CREATE SET p3 += {prop1: 'prop1V3', prop2: 'prop1V3'}

Die Verwendung einer Klausel UNWIND in Verbindung mit einer MERGE/CREATE Klausel ermöglicht dasselbe Verhalten, aber einen optimaleren Ausführungsplan. Vor diesem Hintergrund würde die geänderte Abfrage wie folgt aussehen:

## If not using custom id for nodes/relationship UNWIND [{name: 'NameA', prop1: 'prop1V1', prop2: 'prop2V1'}, {name: 'NameB', prop1: 'prop1V2', prop2: 'prop2V2'}, {name: 'NameC', prop1: 'prop1V3', prop2: 'prop1V3'}] AS props MERGE (p:Person {name: props.name}) ON CREATE SET p = props ## If using custom id for nodes/relationship UNWIND [{`~id`: '1', 'name': 'NameA', 'prop1: 'prop1V1', prop2: 'prop2V1'}, {`~id`: '2', name: 'NameB', prop1: 'prop1V2', prop2: 'prop2V2'}, {`~id`: '3', name: 'NameC', prop1: 'prop1V3', prop2: 'prop1V3'}] AS props MERGE (p:Person {`~id`: props.id}) ON CREATE SET p = removeKeyFromMap(props, '~id')