作者及简介:黄 炎,爱可生首席技术官;王 悦,爱可生研发团队成员,负责数据库管理平台相关项目的开发和故障排查,好奇 MySQL 技术原理及各类数据库实现方案。
本文来源:转载自公众号-图解 MySQL
*爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。
一条 insert 语句在写入磁盘的过程中到底涉及了哪些文件?顺序又是如何的?下面我们用两张图和大家一起解析 insert 语句的磁盘写入之旅。
图 1:事务提交前的日志文件写入
![](https://img-blog.csdnimg.cn/img_convert/53c0600fa98ef474a1edf6a8c90037f2.jpeg)
旅途过程:
- 首先 insert 进入 server 层后,会进行一些必要的检查,检查的过程中并不会涉及到磁盘的写入。
- 检查没有问题之后,便进入引擎层开始正式的提交。我们知道 InnoDB 会将数据页缓存至内存中的 buffer pool,所以 insert 语句到了这里并不需要立刻将数据写入磁盘文件中,只需要修改 buffer pool 当中对应的数据页就可以了。
- buffer pool 中的数据页刷盘并不需要在事务提交前完成,其中的交互过程我们会在下一