mysql数据库的InnoDB引擎 具有ACID的事务特性
其中实现原子性的是通过undo文件,一但有操作失败,可以根据 undo log进行回滚
实现一致性是通过redo log 文件,用于恢复数据,
两者的用处不同,而且redo log是物理上的恢复来保持数据的一致性,undo log是逻辑上的恢复即不会更改物理上的数据如分配缓冲块的大小等等
非锁定一致性读 和 锁定读 是两个相对的情况
非锁定一致性读是通过MVCC实现的,经由undo log 实现,因为undo log 保存了一个事务开始之前的数据版本,可以让不同的事务读取之前数据版本的快照,而不会引起逻辑上的冲突
锁定读,是mysql innoDB引擎默认的行级锁,一个事务访问,另一个事物无法访问,分为X锁和S锁