数据库隔离允许事务执行,就像没有其他并发运行的事务一样。
下面的图说明了四个隔离级别。
隔离性是通过MVCC(多版本一致性控制)和锁来保证的。
下图以Repeatable Read为例,演示MVCC如何工作:
MVCC通过为每行记录创建多个版本,并且为每个事务生成一个时间点快照(Read View),实现非阻塞读和隔离性。 这种机制允许并发事务同时读取数据,而不会堵塞其他事务
MySQL 的 MVCC(多版本并发控制)机制主要包含以下几个方面:
通过版本判断和控制,MVCC可以实现不同隔离级别下的并发控制:
所以,MySQL MVCC 通过行版本和时间轴判断来控制并发事务间的隔离和一致性,这是MySQL并发控制的基石。