使用 UNWIND 而非個別陳述式的批次輸入 - Amazon Neptune

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 UNWIND 而非個別陳述式的批次輸入

每當不同的輸入需要執行相同的查詢時,而不是每個輸入執行一個查詢,對一批輸入執行查詢會更高效能。

如果您想要在一組節點上合併,其中一個選項是在每次輸入時執行合併查詢:

MERGE (n:Person {`~id`: $id}) SET n.name = $name, n.age = $age, n.employer = $employer

使用參數:

params = {id: '1', name: 'john', age: 25, employer: 'Amazon'}

每個輸入都需要執行上述查詢。雖然此方法有效,但可能需要對大量輸入執行許多查詢。在此案例中,批次處理可能有助於減少在伺服器上執行的查詢數量,並改善整體輸送量。

使用下列模式:

UNWIND $persons as person MERGE (n:Person {`~id`: person.id}) SET n += person

使用參數:

params = {persons: [{id: '1', name: 'john', age: 25, employer: 'Amazon'}, {id: '2', name: 'jack', age: 28, employer: 'Amazon'}, {id: '3', name: 'alice', age: 24, employer: 'Amazon'}...]}

建議使用不同批次大小的實驗來判斷最適合工作負載的方案。