一线大厂面试真题-binlog和redolog有什么区别

本文解释了MySQL的binlog和redolog在数据备份、恢复、同步、事务处理中的角色,以及它们之间的区别,包括记录信息类型、使用场景和记录时机的不同。
摘要由CSDN通过智能技术生成

目录

问题解析

问题答案


题解析

这个问题其实比较简单,但凡稍微了解过MySQL数据库,都很容易回答出来。

一般考察1~3年的程序员,所以对于这个工作年限的要注意了解它们的原理。

首先,binlog和redolog都是MySQL里面用来记录数据库数据变更操作的日志。

{如图}其中binlog主要用来做数据备份、数据恢复和数据同步,大家初步接触这个概念,应该是在MySQL主从数据同步的场景中,master节点的数据变更,会写入binlog中,后再把binlog中的数据通过网络传输给slave节点,实现数据同步。

redolog,主要是在MySQL数据事务的ACID特性里面,用来保证数据的持久化性。但是其实它还有很多的作用。

比如数据库崩溃,可以通过RedoLog来恢复未完成的数据,保证数据的完整性。通过合理的配置RedoLog的大小和数量,还可以优化MySQL的性能。

那下面来看下这个面试题的回答吧。

题答案

binlogredolog的区别有很多,可以简单总结三个点

1.   使用场景不同,binlog主要用来做数据备份、数据恢复、以及主从集群的数据同步;RedoLog主要用来实现MySQL数据库的事务恢复,保证事务的ACID特性。当数据库出现崩溃的时候,RedoLog可以把未提交的事务回滚,把已提交的事务进行持久化,从而保证数据的一致性和持久性。

2.   记录的信息不同,binlog是记录数据库的逻辑变化,它提供了三种日志格式分别是statementrow以及mixedredolog记录的是物理变化,也就是数据页的变化结果。

3.   记录的时机不同,binlog是在执行SQL语句的时候,在主线程中生成逻辑变化写入到磁盘中,所以它是语句级别的记录方式;RedoLog是在InnoDB存储引擎层面的操作,它是在MySQL后台线程中生成并写入到磁盘中的,所以它是事务级别的记录方式,一个事务操作完成以后才会被写入到redolog中。

  • 25
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值