Mysql存储引擎——InnoDB内存结构

Mysql存储引擎——InnoDB内存结构

InnodB存储引擎在内存中 主要由: LogBuffer、ChangeBuffer、BufferPool三个缓冲池以及Adaptive Hash Index自适应哈希索引构成。

1. 首先介绍下什么是BufferPool?

   BufferPool是属于InnoDB引擎针对用户的增删改查而产生的一个内存操作缓冲池,它里面的存储单位对应的是一个一个page页对象,跟磁盘上的存储page一一对应。

  page又分为: 

    free page: 未被使用的缓存页

   clean page: 被使用过得page,但数据没有更改

   dirty page: 脏页,被使用过并且数据被修改过的page,页中的数据与磁盘上的数据不一致

针对上述三种page类型,InnoDB通过三种链表结构来维护和管理

free list: 表示空闲的缓冲区,管理的是free page

flush list: 表示需要刷新到磁盘的缓冲区,管理dirty page,内部的page是按它的修改时间排序,越早的越先刷盘,最新修改的在flush list列表的头部,最早修改的在尾部, 先从尾部开始刷盘

lru list: 表示正在使用的缓冲区,管理clean page和dirty page,缓冲区

       

猜你喜欢

转载自blog.csdn.net/LiZhiToDianFeng/article/details/115304423