innodb实现事务隔离的原理
2020-05-08 本文已影响0人
cbhe
innodb默认的事务隔离级别为可重复读,在此隔离级别下,当开启一个事务时,innodb就会为这个事务创建一个视图,该事务中的所有查询都是基于这个视图的。后续如果有事务修改了表记录,这个视图依然不会发生改变,这样就保证了可重复度的隔离级别。
在对一行数据进行修改时,innodb也同时会生成一条回滚日志。回滚日志中记录了从最新数据回滚到修改前的状态的方法。因此,对于每一条记录,通过回滚日志都可以找到任何一个时刻的历史记录。在一个事务中执行查询操作时,只要查到当前最新记录并根据回滚日志回滚到这个事务开始时刻的记录值然后返回即可,视图就是基于这种原理实现的。
