MySql教程

八、MySQL 存储物理结构

本文主要是介绍八、MySQL 存储物理结构,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

数据页

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

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

数据区和表空间

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

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

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

这篇关于八、MySQL 存储物理结构的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!