mysql mvcc学习总结

it2024-07-28  37

1、 MVCC(Multiversion concurrency control),多版本并发控制,用来实现事务的隔离,使用MVCC本质上是为了在进行读操作的时候代替加锁,减少加锁带来的负担。 2、适用的事务级别:Read Committed和Repeatable Read 3、数据结构:     redo log:重做日志记录,存储事务操作的最新数据记录。     undo log:撤回日志记录,作为数据旧版本快照供其他并发事务进行快照读。     read_view:活跃事务链表(还未提交的事务,新建事务(当前事务)与正在内存中commit 的事务不在活跃事务链表)         对于Read Committed级别:每次执行select都会创建新的read_view,更新旧read_view,保证能读取到其他事务已经COMMIT的内容(此时也说明该级别不能防止出现不可重复读)         对于Repeatable Read级别:第一次select时更新这个read_view,以后不会再更新,后续所有的select都是复用这个read_view。 所以能保证每次读取的一致性,即都是读取第一次读取到的内容(此时可防止出现不可重复读) 4、实现:在每行记录多存储DB_TRX_ID(事务id)和DB_ROLL_PT(回滚指针)两列 

最新回复(0)