1、Buffer pool核心组件
buffer pool是mysql的一个核心组件,数据的curd都是用到了它,视同配合了redo log,undo log,bin log,刷磁盘等机制的运行
2、数据库的核心数据模型
数据库的核心数据模型是表+字段+行的概念,也就是说数据库中有一个个的表,一个表有很多字段,并且有很多行数据,每行数据都有对应的字段值,例如:name = "Lucry"
很多行数据在一个数据页中,当buffer pool从磁盘中缓存数据时,也是缓存的一个个数据页。这些数据页经过curd之后,再次刷入到磁盘中,也是以数据页的形式刷入。
每个数据页的大小是16KB,也是就说一页数据包含了16KB的内容,而buffer pool中默认情况下,一个缓存页的大小和磁盘上的一个数据页的大小时候是一一对应的,都是16KB。
3、缓存页对应的描述信息
每个缓存页又会有对应的描述信息,用来描述缓存页。
例如:这个数据页所属的表空间、数据页的编号,缓存页在buffer pool中的地址及一些乱七八糟的东西。
在buffer pool中每个缓存页的描述数据放在最前面,缓存页排列在后端,描述信息差不多占用缓存页5%的大小,如下图所示: