mvcc 全称为 multiversion concurrency control 多版本并行控制
mysql官方释义 : https://dev.mysql.com/doc/refman/5.7/en/glossary.html#glos_mvcc
根据官方解释了解到其操作是
为了满足当前不同隔离级别的innodb引擎事务的一致性读操作; 换言之就是 如果要被查询的数据将被执行更新操作,则会在更新操作执行之前先获取到数据
通过允许查询操作 在无需锁被其他事务持有而导致阻塞读取操作的情况下 执行,提高了并行能力
对于MVCC 其使用 主要体现在 read view 上, 对于 multiversion 的实际理解为 ,在并发事务操作情况下, 每个事务都存在自己唯一的 transaction_id ,在undo_log(回滚日志)中,会记录每个事务操作的数据记录;因此对于并发事务操作的同一行数据,实际会在undolog 中同时存在很多版本的数据