- 在使用 WAL 的系统中,**所有的修改在提交之前都要先写入 log 文件中(写入log文件是写入永久存储)**。log 文件中通常包括 redo 和 undo 信息
- 使用 WAL 的数据库系统不会再每新增一条 WAL 日志就将其刷入数据库文件中,一般**积累一定的量然后批量写入(checkpoint)**,通常使用「页」为单位,这是磁盘的写入单位
- 一方面 WAL 中记录事务的更新内容,通过 WAL 将随机的脏页写入变成顺序的日志刷盘
- 另一方面,WAL 通过 buffer 的方式改单条磁盘刷入为缓冲批量刷盘
- 再者从 WAL 数据到最终数据的同步过程中可以采用并发同步的方式
这样极大提升数据库写入性能,因此,WAL 的写入能力决定了数据库整体性能的上限,尤其是在高并发时