乐趣区

关于mysql:关于MVCC的一些理解20220115

mvcc 是通过两个暗藏字段来实现的 一个事务删除列 一个事务开始列。

  1. select 语句

    1. 只会查找版本早于或等于以后版本的事务的数据,这样能够保障事务的读取的行,要么在事务开始前就开始,要么是事务本人操作的数据
    2. 读取行的删除版本号要么未定义,要么大于事务以后版本号。
  2. insert 语句

    1. 将以后事务的版本记录到插入数据行的事务开始列
  3. delete 语句

    1. 将以后事务版本记录到以后数据行的删除列
  4. uodate 语句

    1. 将以后事务的版本记录到新插入一条数据数据行的事务开始列,同时记录到原数据的删除列

MVCC 只工作在可反复读和读已提交两个隔离级别 其余的不兼容。串行化是因为会对所有数据行间接加锁 读未提交是因为每次读到都是最新最新数据 不须要事务版本这种来管制

退出移动版