redo log和binlog的区别(4大区别详解)

redo log和binlog的区别(4大区别详解)-mikechen

redo log和binlog是mysql的重要组成部分,下面我就详解4大redo log和binlog的区别@mikechen

1. 用途的区别

Redo Log(重做日志): 主要用于确保数据的持久性和一致性,它记录了已提交事务的更改操作。

以便在数据库崩溃或发生故障时恢复数据到一致状态,以确保已提交的事务更改不会丢失。

Binlog(二进制日志): 主要用于数据复制、数据恢复、审计、分析以及用于实现主从复制、高可用性和数据分发等功能。

它记录了数据库中的更改操作,包括数据更改、表结构更改、DDL语句等。

 

2.记录内容的区别

Redo Log: 记录已提交事务的更改操作,包括:INSERT、UPDATE、DELETE等,以及相关的数据页更新。

Binlog: 记录数据库中的所有更改操作,不仅包括数据更改,还包括DDL语句。

比如:CREATE TABLE、ALTER TABLE等,以及其他管理操作,它保存了所有的数据库活动。

 

3.内容类型的区别

Redo Log: 包含了更改前和更改后的数据,用于重放已提交事务的更改。

Binlog: 包含了SQL语句或二进制数据,用于重建数据库的更改操作。

 

4. 生命周期的区别

  • Redo Log: 通常会被循环写入,旧的Redo Log记录会被新的记录覆盖,这是因为它主要用于数据恢复,不需要保留历史记录。
  • Binlog: 通常需要保留一段时间,以支持数据复制、数据恢复、审计和分析等功能,它的生命周期通常较长,可以根据需求配置。

综上所述,Redo Log主要用于确保数据持久性和一致性,而Binlog用于支持数据复制、数据恢复、审计、分析以及高可用性等更广泛的应用。

陈睿mikechen

10年+大厂架构经验,资深技术专家,就职于阿里巴巴、淘宝、百度等一线互联网大厂。

关注「mikechen」公众号,获取更多技术干货!

后台回复面试即可获取《史上最全阿里Java面试题总结》,后台回复架构,即可获取《阿里架构师进阶专题全部合集

评论交流
    说说你的看法