既然MySQL中InnoDB使用MVCC,为什么REPEATABLE-READ不能消除幻读【点击查看详情】
举个例子,假设在一个事务A中插入了一条新记录,而另一个事务B在同一时间读取了这个表。如果事务B的隔离级别设置为可重复读(Repeatable Read),那么在事务B的整个生命周期内,它将不会看到事务A所做的修改。这是因为MVCC机制确保了每个事务都能看到它开始时的数据版本,即使其他事务对数据进行了修改。然而,如果事务B的隔离级别低于可重复读,比如读已提交(Read Committed),那么它就有可能看到事务A所做的修改。在这种情况下,事务B可能会遇到幻读,因为它会看到之前不存在的新记录。