1. redo log

简述: 引擎层的redo log 是为了防止每一次更新操作都去查找记录再批改记录(随机读写),采纳WAL技术(Write-Ahead Logging写前日志)来转换成程序读写;

更新数据时,innoDB先把记录写到redo log中,并更新内存,这时便能够返回后果.同时在InnoDB闲暇的时候将操作记录更新到磁盘外面.

InnoDB 的 redo log 是固定大小的,比方能够配置为一组 4 个文件,每个文件的大小是 1GB,那么总共就能够记录 4GB 的操作。从头开始写,写到开端就又回到结尾循环写,如上面这个图所示。

write pos 是以后记录的地位,一边写一边后移
checkpoint 是以后要擦除的地位,也是往后推移并且循环的,擦除记录前要把记录更新到数据文件。
write pos 和 checkpoint 之间是可记录闲暇空间,当write pos 追上 checkpoint时,须要暂停更新并将数据写入磁盘,而后推动下checkpoint

2. binlog

简述: Server层的binlog记录的是原始逻辑的语句,属于归档日志