八、MySQL 存储物理结构


数据页

  数据页实际上是由多个部分组成的,包括文件头、数据页头、最小记录和最大记录、多个数据行、空闲空间、数据页目录、文件尾部。其中数据行中包含了两行伪记录 Infimum 和 Supremum,Infimum(下确界)记录比该页中任何主键值都要小的值,Supremum (上确界)记录比该页中任何主键值都要大的值,这个伪记录分别构成了页中记录的边界。

八、MySQL 存储物理结构

  数据页一开始是空的,所以没有多行数据这个空间,全部都是空闲目录,然后 MySQL 插入数据时,需要加载数据页到 Buffer Pool 缓存页(与数据页一一对应),往缓存页中插入数据就会减少空闲空间,直到空闲区域耗尽,这个数据页就满了。然后定时线程在适当时候刷盘,把这个缓存页刷入磁盘中对应的数据页。

八、MySQL 存储物理结构

数据区和表空间

  表(Table)对应的有一个表空间的概念,而表空间在磁盘上对应一个或多个数据文件。我们的数据都是写在表空间对应的数据文件上的数据页中,而数据页只是表空间存放数据的一个最小单元。

  为了方便管理这些数据页,又引出了数据区的概念。

  数据页存放在数据区(extent)中,每个数据区存放 64 个数据页,也就是说一个数据区的大小为 1024kb(1M)。然后 256 个数据区被划分为一个组(256M),暂且就叫做数据组吧。一个表空间存在有多个数据组,表空间第一个数据组的第一个数据区的前3个固定的数据页存放了关于这个表空间和数据组的元数据。而其他数据组的第一个数据区的前2个数据页是存放关于这个数据组的元数据。

八、MySQL 存储物理结构

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/278763.html

(0)
上一篇 2022年8月3日
下一篇 2022年8月3日

相关推荐

发表回复

登录后才能评论