快照读:普通的select查询语句(即不加锁的select操作)就是快照读,快照读的实现是基于mvcc的,可以认为MVCC是行锁的一个变种,但是MVCC在很多情况下,避免了加锁操作,降低了开销。既然是基于多版本,快照读可能读到的并不一定是数据的最新版本,有可能是之前的历史版本。
当前读:insert,update,delete,以及Select.......for update(加排他锁的select语句)还有Select........ lock in share mode(加共享锁的select语句),执行这些语句进行数据读取的时候,就是当前读
快照读读取的是数据的最新版本,读取时还要保证其他并发的事务不能修改当前数据,所以会对当前的数据进行加锁。