Mysql MVCCMVCC多版本并发控制本质就是每个事务读到的不是同一个正在被修改的数据,而是自己对应的历史版本快照。所以多个事务既然同时读又能同时写,读写互不阻塞,这就是数据库高并发的秘密武器。那历史版本怎么来的,是通过undo log ,数据库中只存了最新的一条记录,然后通过undo log记录反向操作(如insert一条数据,就在undo log中delete一条数据,update一条数据就在undo log留旧值),所以需要老版本时只要顺着这些日志往回找就可以,所以一条记录和undo log就串成了一条版本链。 那