mysql数据页概念

数据页(Data Page)是MySQL InnoDB存储引擎管理存储空间的基本单位,也是磁盘与内存之间进行数据交换的最小单位。

(针对是是InnoDB引擎而言)

 

为什么是页?

  • 减少I/O次数:磁盘I/O是数据库性能的主要瓶颈。一次读取一页(包含多行数据),比多次读取单行要高效得多。

  • 便于缓存管理:MySQL的内存缓冲区(Buffer Pool)就是按“页”来缓存数据的。将磁盘中的“页”加载到内存,能极大加速后续的查询。

 

数据页的内部结构

一个默认大小为16KB的数据页,内部结构精巧,主要分为七个部分。

image

 

当页内空闲空间用尽,再插入新记录时,就会发生页分裂(Page Split),生成新的数据页来容纳数据

 

页的类型

  1. 数据/索引页 (FIL_PAGE_INDEX):最常见的类型,用于存储表中实际的数据行和索引条目。

  2. Undo页 (FIL_PAGE_UNDO_LOG):存储Undo日志,用于支持事务的回滚和多版本并发控制(MVCC)。

  3. 系统页 (FIL_PAGE_TYPE_SYS):存储InnoDB的系统级数据。

  4. BLOB页 (FIL_PAGE_TYPE_BLOB):当行中的大字段(如TEXT、BLOB)数据过长时,用于存储溢出部分的数据。

 

posted @ 2023-06-24 16:17  方达达  阅读(1)  评论(0)    收藏  举报