当我设置了 Read Committed 隔离级别并且在我的事务中进行了幻读时会发生什么。它会回滚并重新运行还是只是回滚?
最佳答案
除非我对 Committed Read 隔离的理解是不稳定的(总是有可能),否则 Committed Read 的全部意义在于您看不到幻影行 - 被另一个事务更改但更改从未提交并后来回滚的行.因此,在应用程序级别,通过 Committed Read 隔离,应用程序看不到幻影。
DBMS 内部做什么取决于 DBMS。在 MVCC 系统中,您的事务将简单地读取事务开始时提交的版本。在锁定系统中,您可能会碰到其他事务的锁,然后您自己的可能会跳过或阻塞。但是,据我所知,DBMS 不会因为这个问题回滚您的事务。
关于java - 读提交和幻读(Spring),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4215404/