2、Buffer Pool + 磁盘存储图
2021-08-15 23:41:04 0 举报
Buffer Pool + 磁盘存储图
作者其他创作
大纲/内容
end
描述数据
加载数据页
冷数据
next
文件尾部
chunk-2
1bitmin_rec_maskB+每层非叶子节点最小值标志
一行数据
1bit预留
0
IO线程
chunk-1
pre
00000101
空闲区域
多行数据
start
DB_ROLL_PTRundo log指针
数据页(16kb)
缓存页(16k)热数据
磁盘
00000000094C
EA000010078E
数据页目录
缓存页(16k)冷数据
0000
0000000000001
0x09 0x04
DB_ROW_ID行唯一标识
基础节点count=nLRU链
00000000032D
上一个数据页指针
数据页头
chunk-n
变长字段长度(倒序排列)
1bitdelete_mask删除标志
数据头(40bit)
数据区(1MB)(64个数据页)
000
热数据
Buffer Pool
下一个数据页指针
文件头
...
最大记录最小记录
不定时的将flush链数据刷盘
基础节点count=nflush链
1000ms后再次访问放到热数据头部
MySql采用冷热数据分离的思想优化LRU链对热数据的保留
数据页缓存哈希表表空间号1+数据页号1=缓存页地址1表空间号2+数据页号2=缓存页地址2表空间号3+数据页号3=缓存页地址3
16bitnext_record下一条数据指针
3bitrecord_type行数据类型
表空间表名1.ibd
定时将冷数据尾部一些节点刷盘
0000000000011001
DB_TRX_ID事物ID
第一次加载到buffer pool 放到冷数据头部
13bitheap_no
616161 636320 6262626262
数据区
基础节点count=nfree链
MySQL在优化时,会配置多个Buffer Pool
真实数据
4bitn_owned
NULL值列表(bit位倒序排列)
0 条评论
回复 删除
下一页