

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 按批次批量添加顶点和边缘
<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();
```