innodb结构图
innodb内存结构
- buffer pool:缓冲池,以page页为单位,默认大小16k
page管理机制
1. free page:空闲page,未被使用
2. clean page:被使用page,数据没有被修改
3. dirty page:脏页,被使用page,数据被修改过,但为同步到磁盘
- change buffer写缓冲区
当更新一条记录时,该记录在buffer pool存在,直接在buffer pool修改,一次内存操作。如果该记录在buffer pool不存在,会直接在change buffer进行移除内存操作,不用再区磁盘查询数据,避免移除磁盘IO。当下次查询记录时,会先进行磁盘读取,然后再从change buffer中读取信息合并,最终载入buffer pool中。
- log buffer日志缓冲区,用于保存要写入磁盘上log文件(redo/undo)的数据
主要用于记录innodb引擎日志,在DML操作时会产生redo和undo日志