我正在使用 Java API 来提高曾经昂贵的 Cypher 查询的性能。我刚才正在重构,注意到我正在调用 tx.success(),即使我没有更改任何数据。当没有任何变化时将事务标记为成功是否会带来性能下降,或者因为它知道没有什么可以实际提交而无关紧要?
最佳答案
我也深入研究了 Java Api,并在需要时立即运行。
如果您使用嵌套事务并且外部代码调用不执行 tx.success 的 read 操作,那么当外部事务尝试提交(tx.success()) 时,您的内部事务交易(您的读取)会将交易标记为未成功完成)并且数据库将引发异常。
关于neo4j - 有什么理由在 Neo4j 只读事务上调用 `tx.success()` 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29782371/