MySQL的原子性和持久性如何保证?

原子性:undo log

事务是数据库的逻辑工作单位,而且是必须是原子工作单位,对于其数据修改,要么全部执行,要么全部失败回滚。

  类似转账:A-100,B+100 这两个操作属于同一个事务, 要么全部执行,要么全部失败回滚。

  • undo log记录了回滚操作的日志,如果要撤销,按照undo log的回滚日志执行一遍就可以了(保证了原子性)

 

持久性:redo log

指一个事务一旦提交,它对数据库中的数据的改变就应该是永久性的,即使此时再执行回滚操作也不能撤消所做的更改。

  • 持久性就是用redo log,不是每次都写入磁盘,而是定期通过redo log把数据刷入磁盘这样即便断电后,重启mysql还是可以恢复
posted @   Vincent-yuan  阅读(206)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下
点击右上角即可分享
微信分享提示