MySQL的事务实现之——redolog与undolog

事务
事务是数据库区别于文件系统的重要特性之一。在文件系统中,如果正在写文件,此时操作系统突然崩溃,这个文件很有可能就损坏了。
数据库事务,在数据库操作提交时,可以确保要么所有的修改都已经被保存,要么所有的修改都不保存。
事务的特性:ACID,即原子性(atomicity)、一致性(consistency)、隔离性(isolation)、持久性(durability)。
前面的文章介绍了InnoDB存储引擎 的锁机制,正是用来保证事务之间的隔离性。而事务的原子性、一直性、持久性又是怎么实现的呢?答案就是本章将要介绍的知识——redolog和undolog

1、redolog
redo log 称为重做日志,用来保证事务的原子性与持久性。重做日志来实现事务的持久性,由两部分组成:一是内存中的重做日志缓冲(redo log buffer),容易丢失;二是重做日志文件(redo log file),是持久的。
事务持久性的实现是通过 force Log at Commit机制工作的,就是当我们执行事务提交(commit)操作时,必须先将所有操作写入到重做日志文件进行持久化,然后完成commit,才算操作成功。在InnoDB存储引擎中,重做日志由两部分组成,redo log 和undo log。其中,redo log 用来保证事务的持久性,undo log 用来帮助事务回滚 及多版本控制(MVCC) 的功能。
在MySQL数据库中还有一种二进制日志(binlog),它是用来数据恢复及主从复制的。看起来和本文

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值