WAL(Write Ahead Log),就是如果我们每次事务提交事务都持久化到硬盘,因为数据库的数据是一个随机写入的过程,会很慢,所以我们可以先用一个日志文件(redo log file)把数据顺序追加到这个log文件中,再在适当的时机持久化进硬盘,那这样的话会快很多。 以redo日志为例,我们可以配置多个redo log文件,形成一个日志文件组,在这个日志文件组中有两个重要的属性,是write pos,和checkpoint,当我们写入数据时,write pos就往后移,当日志持久化后,checkpoint就往后移,当write追上check时,MySQL就得停下来,清理一些记录,把checkpoint推进一下再继续。
