redo log 和 binlog

mysql里面常说的WAL技术,即Write-Ahead Logging => 先写日志,再写磁盘。

redo log:属于InnoDB引擎特有的日志

1. 当需要update T set 时, InnoDB 引擎将记录写入redo log,并更新内存;

2. 系统空闲时,系统将该update记录更新进入磁盘;

3. redo log写入分为prepare 和commit 两个阶段; (为了保证redolog binlog的逻辑一致性)

#:redo log是固定大小的,类似于回路使用。

Redo log 保证 为InnoDB提供了crash-safe的能力,保证即使数据库发生异常重启数据也不会丢失。

binlog:(mysql  sever 层实现,所有引擎均可使用)

1. 依次取出binlog可以恢复数据库至某一特定时刻

区别:

1. redo log属于InnoDB特有,binlog属于server层,多有引擎均可使用;

2. redo log是物理日志,记录 在某个数据页上做了什么修改;

    binlog是逻辑日志,记录sql语句的原始逻辑,如给ID=2的字段加1;

3. redo log是循环写的,空间固定,用完从头开始;

    binlog是追加写入的,不会覆盖以前的日志;

你可能感兴趣的:(redo log 和 binlog)