0

我在我的 java 应用程序中以嵌入式模式使用 Neo4j。

在升级到 Neo4j 2.x 之前,我将多个数据库操作包装在一个事务中。升级到 2.x 后,我明确地在一个单独的事务中执行每个 db 操作(这是规范的方式,正如文档所建议的那样)。但是,创建数据库的速度已经严重下降。

有没有办法,我可以在一个事务中包装多个数据库操作(插入和查询)?我确实明白,在回滚的情况下,我将不得不处理丢失的 CRUD 操作。

还请提出一般性建议,以扩展最终将拥有超过 6 亿个节点和关系以及超过 20 亿个注释的数据库。

4

1 回答 1

2

neo4j 的要求是所有操作都必须在一个事务中。没有要求每个操作都必须在自己的事务中,这样做既出于性能原因,又因为这将使得不可能将多个逻辑操作分组到一个事务中,这都是一个坏主意。

我认为这里的解决方案是不要将每个操作包装在一个事务中,而是完全按照升级之前的方式进行操作。

这可能是一种误解;在文档中,它们显示了包含在事务中的示例操作,但它并没有说 1 个操作 = 1 个事务。事实上,您可以在一个事务中执行任意数量的不同读/写操作。要求是所有操作都必须在一个事务中。

于 2016-01-27T20:46:18.850 回答