Neo4j Bolt 驱动程序中的 Session.run() 和 transaction.run() 有什么区别?
我的知识是:
Session.run() will execute a single statement
transaction.run() executes multiple statements.
这些是我所知道的正确信息。其他所有差异是什么?
Session.run()
实际上会创建一个事务,执行语句,并提交事务。Transaction.run()
将使事务保持打开状态,直到您提交它,但该语句仍将被发送、解释和执行,并返回结果。但是,任何更改实际上都不会持久保存到数据存储中,并且对于事务外部的查询不可见。您必须将事务标记为成功并提交它,否则它将被回滚。
您应该尽量不要使用交易;打开事务可防止索引和约束发生更改并增加内存使用量。使用事务的唯一原因是为了回滚潜力;如果您想查看查询的结果是什么,并且可能根据这些结果撤消查询,那么请使用事务。否则使用会话。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)