redo log 和 binlog 的区别与联系有哪些总结?

2026-05-06 05:280阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1023个文字,预计阅读时间需要5分钟。

redo log 和 binlog 的区别与联系有哪些总结?

InnoDB的Redo Log和MySQL的Binlog区别:Redo Log是InnoDB引擎特有的,用于保证数据恢复;Binlog是MySQL Server层实现的,所有引擎都可以使用。

Redo Log是物理日志,记录的是在某个数据页上做了什么修改;Binlog是逻辑日志,记录的是做了什么修改。

1 redo log 和 binlog 的区别
  1. redo log 是 InnoDB 引擎特有的;binlog 是 MySQL 的 Server 层实现的,所有引擎都可以使用。
  2. redo log 是物理日志,记录的是“在某个数据页上做了什么修改,实现 crash-safe,即使数据库发生异常重启,之前提交的记录都不会丢失。而binlog 是逻辑日志,记录的是写入性操作(不包括查询)信息,比如“给 ID=5 这一行的 c 字段加 1 ”,保证数据的一致性。
  3. redo log 是循环写的,空间固定会用完;binlog 是可以追加写入的。“追加写”是指 binlog 文件写到一定大小后会切换到下一个,并不会覆盖以前的日志。
  4. binlog 仅在事务提交时记录,并且对于每一个事务,仅包含对应事务的一个日志。而对于 redo log,由于其记录的是物理操作日志,因此每个事务对应多个日志条目。

阅读全文

本文共计1023个文字,预计阅读时间需要5分钟。

redo log 和 binlog 的区别与联系有哪些总结?

InnoDB的Redo Log和MySQL的Binlog区别:Redo Log是InnoDB引擎特有的,用于保证数据恢复;Binlog是MySQL Server层实现的,所有引擎都可以使用。

Redo Log是物理日志,记录的是在某个数据页上做了什么修改;Binlog是逻辑日志,记录的是做了什么修改。

1 redo log 和 binlog 的区别
  1. redo log 是 InnoDB 引擎特有的;binlog 是 MySQL 的 Server 层实现的,所有引擎都可以使用。
  2. redo log 是物理日志,记录的是“在某个数据页上做了什么修改,实现 crash-safe,即使数据库发生异常重启,之前提交的记录都不会丢失。而binlog 是逻辑日志,记录的是写入性操作(不包括查询)信息,比如“给 ID=5 这一行的 c 字段加 1 ”,保证数据的一致性。
  3. redo log 是循环写的,空间固定会用完;binlog 是可以追加写入的。“追加写”是指 binlog 文件写到一定大小后会切换到下一个,并不会覆盖以前的日志。
  4. binlog 仅在事务提交时记录,并且对于每一个事务,仅包含对应事务的一个日志。而对于 redo log,由于其记录的是物理操作日志,因此每个事务对应多个日志条目。

阅读全文