什么是redo log,binlog,undo log?有什么用?

一,redo log

实现方式:Innodb存储引擎
数据库并不是每次操作都写到磁盘,而是先将操作写到内存,过一段时间,再将所有操作一起写入磁盘,这样可以减少IO操作。
redo log就提供这样的功能,每句sql都写到redo log 的内存里,并标记为prepare。当事务提交后,会将此条redolog置为commit状态。之后再进行写入磁盘。
这样就减少了IO操作,并保证一旦落库,即使数据库宕机,也能从redolog恢复已提交的事务。
redolog缓存是固定大小的循环缓存.

二,binlog

实现方式:数据库server层
binlog 是对数据更新进行的记录,以事务的形式,保存在磁盘中。
主要作用:
1.主从复制
2.数据恢复
3.增量备份
binlog有三种模式:
1.statement:保存sql语句
2.row:每行被修改成了何种数据。
3.mixedLevel:混合使用,自动判断

三,undolog

实现方式:Innodb存储引擎,是逻辑表,即在数据记录中增加列和版本字段。
作用:
1.实现数据回滚
2.实现MVCC

四,redolog 和binlog 更新顺序

两个日志记录的顺序:
更新的行如果不在内存,从磁盘取出 -> 修改内存中的值 -> 写入redo-log状态为prepare -> 写binlog -> 提交事务redo-log进行commit

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值