个人学习笔记 不成体系可能有错 欢迎大佬指导
mvcc模型
基础
数据的格式为:
id name txid(事务id) rollpoint (回滚指针)delete_flag(删除标志)
mysql的innodb引擎案例
多个事务操作表数据时
查询的事务第一个查询执行时会生成一个 read-view 他会记录当前活动的事务id和已经提交的事务id 和未提交的事务id 这些数据生成一个视图 根据查询的具体隔离级别读取到具体的数据
笔记重点
- MVCC手段只适用于Msyql隔离级别中的读已提交(Read committed)和可重复读(Repeatable Read).
- Read uncimmitted由于存在脏读,即能读到未提交事务的数据行,所以不适用MVCC.原因是MVCC的创建版本和删除版本只要在事务提交后才会产生。
- 串行化由于是会对所涉及到的表加锁,并非行锁,自然也就不存在行的版本控制问题。
- 通过以上总结,可知,MVCC主要作用于事务性的,有行锁控制的数据库模型。
摘录自 博客