java – Spring事务中REQUIRES_NEW和NESTED传播行为的差异
前言 首先: 它不是Differences between requires_new and nested propagation in Spring transactions的重复 – 我读了它,但我没有找到我的问题的答案 题: 在阅读了我提到的主题之后,我理解了物理交易数量中传播水平的主要区别: 但是看起来逻辑从我的观点来看是相同的. 如何理解在实践中使用哪个级别?任何用例了解它?方便的行为差异的例子? 附: P.S.2 另外我认为有性能差异:
对于那种情况,NESTED会更好,因为1长的物理交易而不是100500 1 最佳答案
我看到的巨大差异:
在嵌套的情况下: >如果外部事务回滚,则嵌套的tra也会回滚. >嵌套的tra看到外部tra的先前更改. > performance:请注意,外部事务的工作集由内部事务扩展.因此更多的锁,MVCC的更多preimage-storage,更长的redo-log-entry. 在requires_new的情况下: >如果回滚外部事务,则在外部tra的回滚情况下,不会回滚内部tra的更改. >内部tra不会看到尚未提交的外部tra所做的更改. 在性能方面,如果其他因素不重要,您可以在交易规模和交易数量之间找到收支平衡点. i.m.O这个问题没有一般的答案,如果嵌套比requires_new快. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |