View a markdown version of this page

Updating/Merging beberapa node - Amazon Neptune

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Updating/Merging beberapa node

Saat menjalankan MERGE atau CREATE query pada beberapa node, disarankan untuk menggunakan kombinasi dengan MERGE/CREATE klausa tunggal versus menggunakan MERGE/CREATE klausa untuk setiap node. UNWIND Kueri yang menggunakan satu klausa untuk satu node menyebabkan rencana eksekusi yang tidak efisien karena setiap baris memerlukan pengoptimalan. Hal ini menyebabkan sebagian besar waktu eksekusi kueri dihabiskan dalam pemrosesan statis alih-alih pembaruan aktual.

Satu Klausa per node tidak optimal karena tidak berskala dengan meningkatnya jumlah node:

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

Menggunakan bersama UNWIND dengan satu MERGE/CREATE klausa memungkinkan perilaku yang sama tetapi rencana eksekusi yang lebih optimal. Dengan pemikiran ini, kueri yang diubah akan terlihat seperti:

## 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')