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 区别