mysql的acid实现原理

原子性 一致性 隔离性 持久性 分别是如何实现的

MySQL的ACID是如何实现的?_mysql的acid怎么实现的_成功人士从不写博客的博客-CSDN博客

隔离性 :

隔离性的实现主要涉及下面几个概念

隔离级别 四个隔离级别

锁种类 共享锁 排它锁 行锁表锁

Mvcc版本控制 readview快照

————————————————

原子性

接着说说原子性。前文有提到 undo log ,回滚日志。隔离性的MVCC其实就是依靠它来实现的,原子性也是。

实现原子性的关键,是当事务回滚时能够撤销所有已经成功执行的sql语句。

当事务对数据库进行修改时,InnoDB会生成对应的 undo log;如果事务执行失败或调用了 rollback,导致事务需要回滚,便可以利用 undo log 中的信息将数据回滚到修改之前的样子。

————————————————

持久性

Innnodb有很多 log,持久性靠的是 redo log。

一条SQL更新语句怎么运行

持久性肯定和写有关,MySQL 里经常说到的 WAL 技术,WAL 的全称是 Write-Ahead Logging,它的关键点就是先写日志,再写磁盘。就像小店做生意,有个粉板,有个账本,来客了先写粉板,等不忙的时候再写账本

这个过程也就是说 一次改动的过程中,会先记录进日志中,然后才会进入磁盘进行修改,避免因为放在内存中如果出现宕机的情况时出现问题。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值