neo4j - 有什么理由在 Neo4j 只读事务上调用 `tx.success()` 吗?

标签 neo4j neo4j-java-api

我正在使用 Java API 来提高曾经昂贵的 Cypher 查询的性能。我刚才正在重构,注意到我正在调用 tx.success(),即使我没有更改任何数据。当没有任何变化时将事务标记为成功是否会带来性能下降,或者因为它知道没有什么可以实际提交而无关紧要?

最佳答案

我也深入研究了 Java Api,并在需要时立即运行。

如果您使用嵌套事务并且外部代码调用不执行 tx.success 的 read 操作,那么当外部事务尝试提交(tx.success()) 时,您的内部事务交易(您的读取)会将交易标记为未成功完成)并且数据库将引发异常。

关于neo4j - 有什么理由在 Neo4j 只读事务上调用 `tx.success()` 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29782371/

相关文章:

Neo4j 加载 CSV 以创建动态关系类型

ruby-on-rails-3 - 使用 jruby on rails 云托管嵌入式 neo4j 服务器的方法?

Neo4J Java Native API 与 Traversal API 与 Cypher

algorithm - 在 Neo4j 中查找树的最长分支

java - 防止覆盖 Neo4J 图形数据库中的数据

java - 同时使用bolt driver和Neo4j的Java API

neo4j - 我应该使用哪个来在 Neo4j 之上实现协同过滤?

Neo4j 密码查询显示从一个节点开始的树状子图,没有特定的关系和节点序列(尽可能高效)

java - 如何使用 Java API 在 Neo4j 中的节点/关系上添加用户定义的约束

java - 在Neo4j中,使用Java API时有什么方法可以限制路径中的节点和关系类型吗?