所以事务B总是读取余额=100的数据。
MVCC通过为每行记录创建多个版本,并且为每个事务生成一个时间点快照(Read View),实现非阻塞读和隔离性。...这种机制允许并发事务同时读取数据,而不会堵塞其他事务
小结
MySQL 的 MVCC(多版本并发控制)机制主要包含以下几个方面:
行版本(Version):MySQL 为每行记录维护多个版本,每个版本都有唯一的版本号...快照(Snapshot):当事务开始时,MySQL 会为其创建一个快照,快照中包含此时数据页中所有版本和对应事务ID。事务执行期间,所有读请求都在此快照中查找版本。...行版本生成:事务更新数据时,会生成行的新版本,并把新版本的事务ID设置为自己的ID。其他事务只有在此事务提交后,新版本才对其可见。...所有版本都可见
所以,MySQL MVCC 通过行版本和时间轴判断来控制并发事务间的隔离和一致性,这是MySQL并发控制的基石。