Postgresql物理存储结构

Postgresql目前不支持使用设备和块设备。

Postgresql的属于

Relation:表示表或索引。

Tuple:表示表中的行。

Page:表示在磁盘中的数据块。

Buffer:表示在内存中的数据块。

Page结构

Page默认大小为8KB,最大32KB,一个数据块中可存放多行的数据。块中的结构如下图:

块头记录了如下信息:

块的checksum

空闲空间的起始位置和结束位置

特殊数据的起始位置

其他一些信息

行指针是一个32bit的数字,具体结构如下:

行内容的偏移量,占15bit;

指针的标记,占2bit;

行内容的长度,占15bit。

行指针中表示行内容的偏移量是15bit,能表示的最大偏移量是2^15=32768,因此块的最大大小是32768,即32KB。

原文地址:https://www.cnblogs.com/baisha/p/8407297.html