binlog与redolog的区别

Posted 阿U

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了binlog与redolog的区别相关的知识,希望对你有一定的参考价值。

 

redo log 是InnoDB 引擎特有的日志,而 Server 层也有自己的日志,称为 binlog (归档日志)

这两种日志有以下三点不同:
            1. redo log 是 InnoDB 引擎特有的; binlog 是 mysql 的 Server 层实现的,所有引擎都可以使用,MySQL数据库中的任何存储引擎对于数据库的更改都会产生binlog。
            2. redo log 是物理日志,记录的是 “ 在某个数据页上做了什么修改 ” ; binlog 是逻辑日志,记录的是这个语句的原始逻辑,比如 “ 给 ID=2 这一行的 c 字段加 1 ”。

binlog 记录的都是事务操作内容,binlog 有三种模式:Statement(基于 SQL 语句的复制)、Row(基于行的复制) 以及 Mixed(混合模式)。具体这三种模式的区别请看主从同步和主备同步专栏


            3. redo log 是循环写的(类似一个循环队列),因为它的空间固定会用完; binlog 是可以追加写入的。 “ 追加写 ” 是指 binlog 文件写到一定大小后会切换到下一个,并不会覆盖以前的日志。

            4.redo在 事务执行过程中 会不断的写入,而 binlog 是在 事务最终提交前 写入的

以上是关于binlog与redolog的区别的主要内容,如果未能解决你的问题,请参考以下文章

MYSQL INNODB的REDO LOG与BINLOG的区别

MySQLMySQL 的 redo log 和 binlog 区别

MySQL中bin-log与redo-log的区别

undolog redolog binlog

mysql日志:redo logbinlogundo log 区别与作用

刨析 MySQL 三大日志:binlogredo log 和 undo log