所在的位置: mysql >> mysql优势 >> MySQLMVCC详解

MySQLMVCC详解

李从悠 http://baidianfeng.39.net/a_yqhg/150804/4671426.html

MVCC(Mutil-VersionConcurrencyControl),就是多版本并发控制。MVCC是一种并发控制的方法,一般在数据库管理系统中,实现对数据库的并发访问。

在Mysql的InnoDB引擎中就是指在已提交读(READCOMMITTD)和可重复读(REPEATABLEREAD)这两种隔离级别下的事务对于SELECT操作会访问版本链中的记录的过程。

这就使得别的事务可以修改这条记录,反正每次修改都会在版本链中记录。SELECT可以去版本链中拿记录,这就实现了读-写,写-读的并发执行,提升了系统的性能。

准备表

CREATETABLE`user`(`id`INT(11)NOTNULL,`name`VARCHAR(20)NULLDEFAULTNULL)ENGINE=InnoDB;

InnoDB对MVCC的实现

MVCC的实现依赖于:隐藏字段、ReadView、undolog。在内部实现中,InnoDB通过数据行的DB_TRX_ID和ReadView来判断数据的可见性,如不可见,则通过数据行的DB_ROLL_PTR找到undolog中的历史版本。每个事务读到的数据版本可能是不一样的,在同一个事务中,用户只能看到该事务创建ReadView之前已经提交的修改和该事务本身做的修改

隐藏列

InnoDB存储引擎为每行数据添加了三个隐藏字段

[]:


转载请注明:http://www.aierlanlan.com/grrz/4273.html

  • 上一篇文章:
  •   
  • 下一篇文章: