【MySQL实战02】redo log和binlog

MySQL的更新操作涉及到两个重要的日志模块,redo log(重做日志)和 binlog(归档日志)。

1、redo log(重做日志)

InnoDB 引擎特有的日志模块,可以保证即使数据库发生异常重启,之前提交的记录都不会丢失,这个能力称为crash-safe

当有一条记录需要更新的时候,InnoDB 引擎就会先把记录写到 redo log里面,并更新内存,这个时候更新就算完成了。同时,InnoDB 引擎会在适当的时候,将这个操作记录更新到磁盘里面,而这个更新往往是在系统比较空闲的时候做。

innodb_flush_log_at_trx_commit 设置成 1 的时候,每次事务的 redo log 都直接持久化到磁盘。

redo log 是固定大小的,比如可以配置为一组 4 个文件,每个文件的大小是 1GB,那么就可以记录 4GB 的操作。从头开始写,写到末尾就又回到开头循环写,如下面这个图所示。

【MySQL实战02】redo log和binlog_第1张图片

你可能感兴趣的:(MySQL,MySQL实战笔记,mysql,数据库)