【问题标题】:Wrapping multiple database queries in one transaction在一个事务中包装多个数据库查询
【发布时间】:2016-01-26 23:17:16
【问题描述】:

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

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

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

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

【问题讨论】:

  • 你为什么切换到每个 TX 一个操作?文档中哪里说这是规范方式?

标签: neo4j neo4j-java-api


【解决方案1】:

neo4j 的要求是所有操作都必须在一个事务中。没有要求每个操作都必须在自己的事务中,这样做既出于性能原因,也因为这将导致无法将多个逻辑操作分组到一个事务中。

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-01-15
    • 2015-03-27
    • 1970-01-01
    • 1970-01-01
    • 2014-01-07
    • 2012-11-20
    • 2011-05-28
    相关资源
    最近更新 更多