binlog和redo log的区别

1)binlog会记录所有与MySQL有关的记录,包括InnoDB、MyISAM等其他存储引擎的日志。

而InnoDB存储引擎的redo log只记录有关该存储引擎本身的事务日志。

2)binlog记录的是一个事务的具体操作内容,即该日志是逻辑日志。

而redo log记录的是每个页(page)的物理更改情况。

3)binlog仅在事务提交前进行提交,即只写磁盘一次,不论这时该事务多大。

而在事务的进行的过程中,却不断有重做日志条目(redo entry)被写入redo log中。

参考:《MySQL技术内幕:InnoDB存储引擎》

binlog和redo log的区别,布布扣,bubuko.com

时间: 2024-10-13 02:38:55

binlog和redo log的区别的相关文章

mysql的binlog与redo log区别

binlog 与redo log 区别 1.首先2者都是记录数据的改变,不同的是,binlog是记录所有数据的改变信息,而innodb的redo log只是记录所有innodb表数据的变化. 2.binlog是记录已经提交完毕之后的dml以及ddl sql语句,而innodb redo log是正在执行中的dml以及ddl语句 3.binlog可以作为恢复数据使用 redo log可以作为异常down机或者介质故障后的数据恢复使用 4.在db文件目录下,也分属于不通的日志文件中.

MYSQL INNODB的REDO LOG与BINLOG的区别

MYSQL INNDODB的REDO LOG与BINLOG从表面上看来是非常相似的.然而本质上有很大的区别: 第一:REDO LOG是在INNODB存储引擎层产生,而BINLOG是MYSQL数据库的上层产生的,并且二进制日志不仅仅针对INNODB存储引擎,MYSQL数据库中的任何存储引擎对于数据库的更改都会产生二进制日志. 第二:两种日志记录的内容形式不同.MYSQL的BINLOG是逻辑日志,其记录是对应的SQL语句.而INNODB存储引擎层面的重做日志是物理日志. 第三:两种日志与记录写入磁盘

mysql物理日志redo log和逻辑日志 binlog

1.redo log(InnoDB引擎特有的日志)1.1.有了 redo log,InnoDB 就可以保证即使数据库发生异常重启,之前提交的记录都不会丢失,这个能力称为 crash-safe.具体来说,当有一条记录需要更新的时候,InnoDB 引擎就会先把记录写到 redo log里面,并更新内存,这个时候更新就算完成了.同时,InnoDB 引擎会在适当的时候,将这个操作记录更新到磁盘里面,而这个更新往往是在系统比较空闲的时候做1.2.innodb_flush_log_at_trx_commit

mysql日志redo log 和binlog

在上一篇中我们说到了mysql的基础架构,通常一个查询操作只会涉及到基础架构中的那几部分: 首先连接数据库,分析器进行语义.语法分析,优化器生成执行计划和索引选择.执行器执行对应的语句.存储引擎查看内存中是否有对应的数据,有的话直接返回,没有的话从磁盘查找(不考虑查询缓存):但是对于更新操作的话还需要用到日志来辅助 日志的作用:1.数据恢复需要用到binlog 2.数据库重启后需要redo log来保证数据的可靠,会出现数据还没写入磁盘服务器异常重启的情况 一.redo log(重做log) 由

说说MySQL中的Redo log Undo log都在干啥

阅读目录(Content) 1 undo 1.1 undo是啥 1.2 undo参数 1.3 undo空间管理 2 redo 2.1 redo是啥 2.2 redo 参数 2.3 redo 空间管理 3 undo及redo如何记录事务 3.1 Undo + Redo事务的简化过程 3.2  IO影响 3.3 恢复 在数据库系统中,既有存放数据的文件,也有存放日志的文件.日志在内存中也是有缓存Log buffer,也有磁盘文件log file,本文主要描述存放日志的文件. MySQL中的日志文件,

MySQL的日志(二):事务日志(redo log和undo log)

本文目录:1.redo log 1.1 redo log和二进制日志的区别 1.2 redo log的基本概念 1.3 日志块(log block) 1.4 log group和redo log file 1.5 redo log的格式 1.6 日志刷盘的规则 1.7 数据页刷盘的规则及checkpoint 1.8 LSN超详细分析 1.9 InnoDB的恢复行为 1.10 和redo log相关的变量2.undo log 2.1 undo log的基本概念 2.2 undo log的存储方式

redo log write和flush

http://bbs.chinaunix.net/thread-1753130-1-1.html 在事务提交时innobase会调用ha_innodb.cc 中的innobase_commit,而innobase_commit通过调用trx_commit_complete_for_mysql(trx0trx.c)来调用log_write_up_to(log0log.c),也就是当innobase提交事务的时候就会调用log_write_up_to来写redo loginnobase_commit

MySQL系列:innodb源码分析之redo log恢复

在上一篇<innodb源码分析之重做日志结构>中我们知道redo log的基本结构和日志写入步骤,那么redo log是怎么进行数据恢复的呢?在什么时候进行redo log的日志推演呢?redo log的推演只有在数据库异常或者关闭后,数据库重新启动时会进行日志推演,将数据库状态恢复到关闭前的状态.那么这个过程是怎么进行的呢?以下我们逐步来解析. 1.recv_sys_t结构 innodb在MySQL启动的时候,会对重做日志文件进行日志重做,重做日志是通过一个recv_sys_t的结构来进行数

redo log

redo log: 1.用来实现灾难恢复.突然断电会导致innodb表空间(table space)中的数据 没有及时更新到磁盘上面..可以通过执行redo log来恢复这些数据. 2.提升innodb的i/o性能.innodb把数据.索引先放到内存的缓存池buffer pool. 如果每次修改数据.索引都同步到磁盘.会加大io请求. innodb_log_buffer_size  缓存大小. innodb_log_buffer_size (global) 这是 InnoDB 存储引擎的事务日志