MVCC
MySQL记录自动增加3列,row_id,db_trx_id,db_prev_ptr
select语句执行时,生成一个read_view快照读,以此快照为基准,在事务整个过程中,不会发生变化。所以两次select的结果保持一致,解决不可重复读问题和脏读问题。
对于幻读问题,在无CUD的纯select语句下,可以避免幻读,但如果有CUD,就会生成一个新的readview快照,对事务的变化会进行更新,可能会导致两次select的结果出现不一致。
MVCC
MySQL记录自动增加3列,row_id,db_trx_id,db_prev_ptr
select语句执行时,生成一个read_view快照读,以此快照为基准,在事务整个过程中,不会发生变化。所以两次select的结果保持一致,解决不可重复读问题和脏读问题。
对于幻读问题,在无CUD的纯select语句下,可以避免幻读,但如果有CUD,就会生成一个新的readview快照,对事务的变化会进行更新,可能会导致两次select的结果出现不一致。