MySQL redo log和undo log

MySQL作为一个最受欢迎的开源关系型数据库,其对于可靠性和稳定性有着很高的要求。

Innodb是MySQL几个存储引擎当中功能最强大的一个,能够支持完整的事务功能。

什么是Redo Log?

Redo Log,顾名思义,即为重做日志,是Innodb存储引擎可靠性的一个重要保障。为什么这么说呢?

想象一下,当MySQL同时连接众多的会话,为其提供各自的事务功能,事务操作往往比较耗时。同时,数据库作为一个应用服务,需要面对的一个问题就是机器发生故障。假如在事务执行过程中,机器突然发生了故障,那么是不是意味着这部分的数据就会丢失呢?答案显然是否。MySQL作为一款成熟的数据库产品,对于这种故障的抵抗能力自然不在话下。

那么,对于这种抵抗故障的能力,是如何实现的呢?答案就在Redo Log。重做日志,是在事务或者更新语句执行完成之后而数据却尚未刷新到数据表时的所记录的日志。假如一条update语句更新了一条记录的某个字段,那么是不是说这个数据会立刻写到硬盘呢?出于效率考虑,数据库应用通常都会选择先将该数据保存在内存当中,之后异步写入永久存储设备当中。

所以,当故障发生而内存当中的数据尚未来得及全部刷新到数据表文件当中时,数据也不会丢失。因为之后服务重启时会将Redo Log当中的数据刷新到数据文件当中,待全部刷新完成之后,服务才允许新的会话接入从而对外提供服务。

什么是Undo Log?

知道了Redo Log之后,另一个相似的概念是Undo Log,也就是撤销日志。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值