Chinaunix首页 | 论坛 | 博客
  • 博客访问: 57168
  • 博文数量: 8
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 79
  • 用 户 组: 普通用户
  • 注册时间: 2016-09-02 10:14
文章分类

全部博文(8)

文章存档

2018年(2)

2017年(6)

我的朋友

分类: Mysql/postgreSQL

2017-01-12 16:41:50

今天朋友问了我一个问题:MySQL的redolog和binlog的区别!!!
在这里记录一下

首先,binlog会记录所有与MySQL数据库有关的日志记录,包括InnoDB、MyISAM、Heap等其他存储引擎的日志。
而InnoDB存储引擎的重做日志只记录有关该引擎本身的事务日志。

其次,记录的内容不同。无论用户将binlog文件记录的格式设为STATEMENT还是ROW,又或是MIXED,其记录的都是
关于一个事务的具体操作内容,即该日志是逻辑日志。而InnoDB存储引擎的重做日志是关于每个页(Page)的更改的物理情况。

此外,写入的时间也不同。binlog文件仅在事务提交后进行写入,即只写磁盘一次,不论这时该事务多大。而在事务进行的过程中,
却不断有重做日志条目(redo entry)被写入到重做日志文件中。

由此可见,redo log仅仅是innodb存储引擎的一个功能,而binlog才是对应oracle的redo log
区别:
二进制日志会记录所有与mysql有关的日志记录,包括innodb,myisam,heap等其他存储引擎日志.而innodb存储引擎的重做日志只记录有关其自身的事务日志.
记录的内容不同:二进制日志记录的都是一个关于一个事务的具体操作内容.而innodb存储引擎的重做日志文件记录的关于每个页的更改物理情况
写入时间也不同:二进制日志文件是在事务提交时进行记录的,而在事务进行的过程中,不断有重做日志条目被写入重做日志文件
阅读(2389) | 评论(3) | 转发(0) |
给主人留下些什么吧!~~

豆浆_tony2017-01-19 11:06:46

woaimaidong:下次写的时候,稍稍将格式注意一下,适当加些必要的图片说明!

好的

回复 | 举报

woaimaidong2017-01-12 17:45:21

下次写的时候,稍稍将格式注意一下,适当加些必要的图片说明!

woaimaidong2017-01-12 17:44:25

豆豆,不错啊,又写一篇。