【发布时间】:2015-07-21 13:25:30
【问题描述】:
我们大多数人可能都在使用 Spring 和 Hibernate 进行数据访问。 我试图了解 Spring Transaction Manager 的一些内部结构。
根据 Spring API,它支持不同的隔离级别 - doc 但我找不到明确的信息,这些信息在哪些情况下确实有助于提高性能。
我知道Spring Transaction
中的readOnly
参数可以帮助我们使用不同的TxManager 来读取只读数据,并且可以利用良好的性能。但它locks
表来获取数据以避免脏读/未提交的读取 - doc。
假设,在少数情况下,我们可能想在不锁定表的情况下盲目地将记录插入表中并检索信息,在这种情况下,我们从不更新表数据,我们只是插入和读取 [append-only]。我们可以使用更好的隔离来获得任何性能吗?
- 正如您从其中一个参考链接中看到的那样,我们真的需要实现/编写我们自己的 CustomJPADiaelect 吗?
- 对于我的要求,哪种隔离更好?
【问题讨论】:
标签: java mysql spring hibernate transactions