1、MVCC
- InnoDB的事务隔离级别已提交读和可重复读的底层实现原理:
MVCC
(多版本并发控制)–》并发的读取方式:快照读 - InnoDB提供了2种读取操作: 锁定读和非锁定读
- 锁定读就是读取的时候加锁了(S锁或者X锁)
- 非锁定读就是读取的时候没有加锁,指的就是MVCC提供的快照读–》依赖底层的undo log回滚日志。
事务日志: undo log
回滚日志 和 redo log
重做日志
ACID,A:原子性,C:一致性,I:隔离性,D:持久性
- ACD:(依靠 事务日志 保证的)
- I:(依靠 锁+MVCC 保证的)
undo log回滚日志的主要作用:
- 事务发生错误时回滚rollback ,回滚日志(数据在更新的时候,把改之前的数据存下来在回滚日志中,目的是为了事务万一出错回滚了或者我们手动回滚的时候,能够把最初的数据在回滚日志中找到)
- 提供了MVCC的非锁定读