小白也能看懂的Innodb执行引擎及MVCC原理

一、InnoDB实现事务四大特性

在这里插入图片描述

  • 原子性(Atomicity):原子性指整个数据库事务是不可分割的工作单位。事务中所有的数据库操作,要么全部提交成功,要么全部失败回滚。
  • 一致性(Consistency):事务开始前和结束后,数据库的完整性约束没有被破坏 。
  • 隔离性(Isolation):事务的隔离性要求每个读写事务的对象对其他事务的操作对象能相互分离,即该事务提交前对其他事务都不可见。
  • 持久性(Durability):事务一旦提交,其结果是永久性的,即使发生宕机等故障,数据库也能将数据恢复。

二、InnoDB的实现原理

(一)InnoDB如何保证原子性(Atomicity)?
在事务里任何对数据的修改都会写一个undo log,然后进行数据的修改,如果出现错误,存储引擎会利用undo log的备份数据恢复到事务开始之前的状态。
(二)InnoDB如何保证一致性(Consistency)?
事务的原子性和隔离性保证了数据的一致性
(三)InnoDB如何保证隔离性(Isolation)?
InnoDB的默认隔离级别REPEATABLE READ + Next-Key Locking,InnoDB锁与MVCC机制保证了数据库的隔离性,不出现并发一致性问题,且理论上效率高于SERIALIZABLE隔离级别。
(四)InnoDB如何保证持久性(Durability)?
InnoDB存储引擎在启动时不管上次数据库运行时是否正常关闭,都会尝试通过redo log进行恢复操作。

三、并发一致性问题

  • 脏读:读到未提交的数据
  • 不可重复读:读到已提交的数据;同样的条件,第一次与第二次读的值不同。
  • 幻读:同样的条件,第一次与第二次读出来的记录不同。
  • 丢失修改 : 事务2提交的结果破坏了事务1
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值