

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# 個々のステートメントの代わりに UNWIND を使用したバッチ入力をする
<a name="best-practices-content-14"></a>

 異なる入力に対して同じクエリを実行する必要がある場合は、入力ごとに 1 つのクエリを実行するのではなく、入力バッチに対してクエリを実行する方がはるかにパフォーマンスが高くなります。

 ノードのセットでマージする場合は、入力ごとにマージクエリを実行することができます。

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

 ワークロードに最適なバッチサイズを判断するには、さまざまなサイズで試すことをお勧めします。