Memperbarui/Menggabungkan beberapa node - Amazon Neptune

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

Memperbarui/Menggabungkan beberapa node

Saat menjalankan MERGE atau CREATE kueri pada beberapa node, disarankan untuk menggunakan kombinasi dengan klausa tunggal versus menggunakan MERGE/CREATE 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. Ini mengarah ke sebagian besar waktu eksekusi kueri yang dihabiskan dalam pemrosesan statis alih-alih pembaruan yang sebenarnya.

Satu Klausul per node tidak optimal karena tidak menskalakan 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 UNWIND dalam hubungannya dengan satu MERGE/CREATE klausa memungkinkan untuk perilaku yang sama tetapi rencana eksekusi yang lebih optimal. Dengan mengingat hal 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')