

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

# 在批次中大量新增頂點和邊緣
<a name="best-practices-gremlin-java-batch-add"></a>

每個對 Neptune 資料庫的查詢都在單一交易的範圍中執行，除非您使用工作階段。這表示如果您需要使用 gremlin 查詢插入許多資料，使用 50-100 的批次大小來同時批次處理，可透過降低建立的負載交易量來改善效能。

舉例來說，新增 5 個頂點到資料庫會如下所示：

```
// Create a GraphTraversalSource for the remote connection
final GraphTraversalSource g = traversal().withRemote(DriverRemoteConnection.using(cluster));
// Add 5 vertices in a single query
g.addV("Person").property(T.id, "P1")
 .addV("Person").property(T.id, "P2")
 .addV("Person").property(T.id, "P3")
 .addV("Person").property(T.id, "P4")
 .addV("Person").property(T.id, "P5").iterate();
```

同樣地，您可以使用 批次新增邊緣`addE`。使用 `V()`參考現有頂點做為每個邊緣的來源和目標：

```
// Add edges in a single batched query
g.V("P1").addE("knows").to(V("P2"))
 .V("P2").addE("knows").to(V("P3"))
 .V("P3").addE("knows").to(V("P4"))
 .V("P4").addE("knows").to(V("P5")).iterate();
```

您也可以在單一批次中結合頂點和邊緣建立。使用 `as()`標記新建立的頂點，以便在相同周遊中新增邊緣時參考它們：

```
// Add vertices and edges together in a single query
g.addV("Person").property(T.id, "P1").as("p1")
 .addV("Person").property(T.id, "P2").as("p2")
 .addV("Person").property(T.id, "P3").as("p3")
 .addE("knows").from("p1").to("p2")
 .addE("knows").from("p2").to("p3").iterate();
```