binlog和redolog的区别

相同点

binlog和redolog都是用来记录数据库数据变更操作的日志。

不同点

binlog

其中binlog主要用来做数据备份、数据恢复和数据同步。

大部分人的首次接触是主从数据同步的场景里面。master节点的数据变更会写入到binlog中,然后再把binlog的数据通过网络传输给slave节点,实现数据同步。

redolog

而redolog主要是在MySQL数据库事务的ACID特性里面,用来保证数据的持久化特性。

其他作用(数据库崩溃时)

数据库崩溃时,可以通过RedoLog来恢复未完成的数据,保证数据的完整性。

还可以通过合理的配置Redo Log的大小和数量,优化MySQL的性能。

问题回答

binlog和redolog的区别其实有很多,可以简单总结3个点:

  1. 使用场景不同

binlog主要是用来进行数据备份、数据恢复和主从集群的数据同步。RedoLog主要用来实现MySQL数据库的事务恢复和保证事务的ACID特性。

当数据库出现崩溃时,Redo Log可以把未提交的事务回滚,把已提交的事务进行持久化。从而保证数据的一致性和持久化。

  1. 记录信息不同

binlog是记录数据库的逻辑变化。它提供了三种日志格式,分别是statement、row以及mixed。

redolog记录的是物理变化,也就是数据页的变化结果。

  1. 记录的时机不同

binlog是在执行SQL语句的时候,在主线程生成逻辑变化,写入到磁盘里面。所以它是语句级别的记录方式。

RedoLog是在InnoDB存储引擎层面的操作,它是在MySQL后台线程中去生成,并且写入到磁盘中的。所以它是事务级别的记录方式。一个事务操作完成之后才会被写入到redo log里面。

参考资料【Java面试】Mic老师面试题满分解析,binlog和redolog有什么区别?

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值