网站公司建立,枣强网址建站,深圳设计公司排名深圳市广告公司,现在最火的推广平台1. 数据页#xff08;dataPage#xff09;
什么是数据页#xff1f;
数据页是 MySQL 存储引擎在磁盘和内存之间传输数据的基本单位#xff0c;默认大小为16KB。
数据页的结构#xff1a;
表头#xff1a;储存与页相关的元信息#xff0c;比如#xff0c;页号#…1. 数据页dataPage
什么是数据页
数据页是 MySQL 存储引擎在磁盘和内存之间传输数据的基本单位默认大小为16KB。
数据页的结构
表头储存与页相关的元信息比如页号页类型。数据行存储实际的表格记录数据。指针和链表为了高效地访问数据数据页中还包含了指向其他相关页的指针和链接。
什么是页分裂
当数据页满了以后无法再插入新的行时数据库引擎会自动将该页分裂为两个页以便容纳新的数据将原始页的一部分移到新的数据页的另一部分通过指针连接从而保证索引的有序和高效性。
2. 缓存页bufferPool
什么是缓存页
bufferPool是基于内存的而mysql数据是存储在磁盘中将数据以数据页的形式缓存在bufferPool中可以很大的提升读写效率。Buffer Pool 以页为单位缓冲数据可以通过 innodb_buffer_pool_size 参数调缓冲池的大小默认是 128 M。
缓存页的数据结构
innodb通过以下三种链表来管理缓存页
Free List空闲页链表管理空闲页
Flush List脏页链表管理脏页
LRU List管理脏页加干净页将最近且经常查询的数据缓存在其中而不常查询的数据就淘汰出去。
脏页什么时候会被刷入磁盘
1、redo log日志满的时候会主动触发脏页刷新到磁盘
2、Buffer Pool空间不足时需要将一部分数据页淘汰掉如果淘汰的是脏页会将脏页刷新到磁盘
3、Mysql认定空闲的时候会定期将脏页同步到磁盘
4、在Mysql关闭之前会将脏页全部刷入磁盘。 ps以下是我整理的java面试资料密码是obht感兴趣的可以看看。最后创作不易觉得写得不错的可以点点关注
链接https://www.yuque.com/u39298356/uu4hxh?# 《Java面试宝典》