文章目录
1.当前读与快照读的基本概念
在MVCC多版本并发控制中,核心概念和原理是非常复杂的,我们先来搞清楚MVCC中常见名称的基本概念,然后再来讲解什么是MVCC以及MVCC的原理。
1.1.当前读的基本概念
当前读指的是在事务中,通过Select查询语句读取的数据记录是当前表中最新版本的记录,默认情况下,在事务中读取表中的数据时,为了避免并发事务对我们读取的数据进行修改,会对读取的记录加锁,即使其他事务修改了表中的数据,我们读取到的数据仍然是其他事务修改之前的数据。
即使在事务中,我们也想要读取当前表中最新的数据记录,而并不是进入事务时查询到的数据,那么此时就需要用到当前读的概念,突破事务一开始读取数据的锁,通过当前读来读取表中最新版本的数据记录。
如何才能突破读取表记录加的锁呢?很简单只要触发当前读的机制,使当前的查询语句进化成当前读的行为,就可以读到表中最新版本的数据,当事务中执行的SQL,如select lock in share mode、update、insert、delete、select...for update
这些,产生了共享锁和排它锁,此时就会产生当前读。
下面来演示一下当前读的效果。