1. 概述
前面很多大侠都分享过MySQL的InnoDB存储引擎将数据刷新的各种情况。我们这篇文章从InnoDB往下,看看数据从InnoDB的内存到真正写到存储设备的介质上到底有哪些缓冲在起作用。
我们通过下图看一下相关的缓冲:
图 1 innodb all buffers
从上图中,我们可以看到,数据InnoDB到磁盘需要经过
- InnoDB buffer pool, Redo log buffer。这个是InnoDB应用系统本身的缓冲。
- page cache /Buffer cache(可通过o_direct绕过)。这个是vfs层的缓冲。
- Inode cache/directory buffer。这个也是vfs层的缓冲。需要通过O_SYNC或者fsync()来刷新。
- Write-Back buffer。(可设置存储控制器参数绕过)
- Disk on-borad …