我们有两个线程:
第一个线程制作select * from big_table
并对其进行迭代。
第二个线程在该表中插入一行(在第一个线程的选择之后),而第一个线程迭代大结果集。第一个线程继续迭代表。
在迭代结束时,第一个线程是否获取第二个线程行插入的值,为什么?
看看这个: -
还要考虑一件事——INSERT ... SELECT 实际上在锁定模式下执行读取,因此部分绕过版本控制并检索最新提交的行。所以即使你在 REPEATABLE-READ 模式下操作,这个操作也会在 READ-COMMITTED 中执行