八、MySQL 存储物理结构
作者:互联网
数据页
数据页实际上是由多个部分组成的,包括文件头、数据页头、最小记录和最大记录、多个数据行、空闲空间、数据页目录、文件尾部。其中数据行中包含了两行伪记录 Infimum 和 Supremum,Infimum(下确界)记录比该页中任何主键值都要小的值,Supremum (上确界)记录比该页中任何主键值都要大的值,这个伪记录分别构成了页中记录的边界。
数据页一开始是空的,所以没有多行数据这个空间,全部都是空闲目录,然后 MySQL 插入数据时,需要加载数据页到 Buffer Pool 缓存页(与数据页一一对应),往缓存页中插入数据就会减少空闲空间,直到空闲区域耗尽,这个数据页就满了。然后定时线程在适当时候刷盘,把这个缓存页刷入磁盘中对应的数据页。
数据区和表空间
表(Table)对应的有一个表空间的概念,而表空间在磁盘上对应一个或多个数据文件。我们的数据都是写在表空间对应的数据文件上的数据页中,而数据页只是表空间存放数据的一个最小单元。
为了方便管理这些数据页,又引出了数据区的概念。
数据页存放在数据区(extent)中,每个数据区存放 64 个数据页,也就是说一个数据区的大小为 1024kb(1M)。然后 256 个数据区被划分为一个组(256M),暂且就叫做数据组吧。一个表空间存在有多个数据组,表空间第一个数据组的第一个数据区的前3个固定的数据页存放了关于这个表空间和数据组的元数据。而其他数据组的第一个数据区的前2个数据页是存放关于这个数据组的元数据。
标签:存储,缓存,记录,存放,MySQL,空间,数据,空闲,物理 来源: https://www.cnblogs.com/sxdear/p/16547321.html