浅析MySQL - MVCC
例如目前有个trx_id是60的事务正执行如下语句: update table set name = '小明1' where id = 1此时在 undo 日志中就存在版本链。假设当前列表里的事务 id 为[80,100]。举个例子 ,在已提交读隔离级别下:比如此时有一个事务id为100的事务,修改了name,使得的name等于小明2,但是事务还没提交。这时候之前那个select事务又执行了一次查询,要查询id为1的记录。所以第二次 select 结果和第一次一样,所以叫 可重复读 !这就是Mysql的MVCC,通过版本链,实现多版本,可并发读-写,写-读。通过ReadView生成策略的不同实现不同的隔离级别。
用户评论