对数据的操作需要保证完整性,MySQL在进行数据修改时保留了很多操作痕迹,正是这些操作日志保证了MySQL的可靠和强大。
binlog
binlog 是服务层执行的操作,使用任意一个引擎都可以产生binlog。他记录的是数据的修改历史动作,包括新增、修改、删除,没有查询动作。刷盘时机由 sync_binlog
配置控制。binlog一般用来做主从复制和数据恢复。
redo log
redo log 是引擎执行的操作,InnoDB引擎可以产生redo log。他记录的是未写入表空间的数据,所以他的大小不大且固定。刷盘时机由 innodb_flush_log_at_trx_commit 配置控制。redo log一般用来崩溃恢复。
undo log
undo log 是引擎执行的操作,InnoDB引擎可以产生undo log。他记录的是历史版本数据信息,一般用来回滚数据。