《MySQL》第十篇 MVCC与BufferPool缓存机制

一. MVCC多版本并发控制机制
二. Innodb引擎SQL执行的BufferPool缓存机制

一. MVCC多版本并发控制机制

     MySQL在读已提交和可重复读事务隔离级别上可以保证事务较高的隔离性,同样的SQL查询在同一个事务中多次查询的结果是一致的,就算其他事务对数据有修改也不会影响当前事务SQL语句查询的结果。这种隔离性是使用MVCC(Multi-Version Concurrency Control)机制来实现的。
     在读已提交和可重复读事务隔离级别上, 对一行的数据的读和写操作默认不会通过加互斥锁来保证隔离性,避免了频繁的加锁互斥。而在串行化隔离级别为了保证较高的隔离性是通过将所有操作加锁互斥来实现的。
      MVCC是通过undo日志版本链read view机制来实现。

undo日志版本链

     undo日志版本链是指一行数据被多个事务依次修改过后,在每个事务修改完后,MySQL会保留修改前的数据undo回滚日志,并且用两个隐藏字段 trx_id(事务id)roll_pointer(回滚标记点) 把这些undo日志串联起来形成一个历史记录版本链。

你可能感兴趣的:(#,MySQL,数据库,mysql,数据结构,数据库)