redo log和bin log以及两阶段提交(笔记)

1.redo log

如果熟悉MySQL你肯定知道MySQL能过对数据进行恢复(前提是开启bin log日志),当然这要归功于bin
log日志。但是你可曾听过redo log呢?

首先redo log是innodb引擎特有的,需要注意的是innodb是MySQL的一个插件。

什么是redo log呢?有啥用?实际上当我们执行一条修改语句,难道每次都要落盘吗?显然是不可能的,如果每次都需要落盘,首先数据量大的时候每次都要去对这么大的文件进行io操作,显然在效率上是不可行的。

那么redo log是怎么操作的呢?redo log首先是一个环形的文件,可以设置每个文件大小,同时是循环写入的,当对数据进行修改后会先写入到redo log,如果开启了binlog那么会再写入到bin log,最后根据实际情况来写入磁盘。这样就算MySQL异常重启了也能够保证数据不丢失,这种功能称之为crash-safe能力。

究竟什么时候写入到磁盘?

写入磁盘的实际是由MySQL决定的,例如现在不忙了。或者现在redo log要写满了。此时MySQL会主动进行触发写入到磁盘。

如下所示,write pos是当前写入的位置,而check point则是redo log落盘后对redo log进行清理后的位置。可以看出write pos和che

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值