MySQL事务详解(读写锁+MVCC)


在数据库中,我们将我们的指定的一些操作设置为一个事务。

事务的四大特性ACID

  • Atomocity:原子性,一个事务中的所有操作,要么全部完成,要么全部失败。
  • Consistency:一致性,一个或多个事务执行后,原来一致的数据和数据库仍然是一致的。银行转账前后,金额的总额不改变。
  • Lsolation:隔离性,数据库开启一个事务时,不会受到其他事务对数据操纵导致数据不一致。多个事务并发互不影响。
  • Durability:持久性,事务提交后,对数据库中的数据的修改是永久的。它无法通过回滚或者任何方式来进行恢复。

而事务的ACID是通过InnoDB日志来保证。

  • 事务的隔离性是通过数据库锁+MVVC的机制实现的。
  • 事务的持久性通过redo log(重做日志)来实现。
  • 原子性和一致性通过Undo log(回撤日志)来实现.

Undo Log保存了事务发生之前的数据的一个版本,为了满足事务的原子性,在事务前备份数据到Undo Log,然后进行数据的修改。如果出现了错误或者用户执行了roll back语句,系统可以利用Undo Log的数据进行恢复。

Redo log确保事务的持久性。防止在发生故障的时间点,尚有脏页未写入磁盘,在重启mysql服务的时候,根据redo log进行重做,从而达到事务的持久性这一特性。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值