Postgresql物理存储结构

Posted baisha

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Postgresql物理存储结构相关的知识,希望对你有一定的参考价值。

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

Postgresql的属于

Relation:表示表或索引。

Tuple:表示表中的行。

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

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

Page结构

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

技术分享图片

块头记录了如下信息:

块的checksum

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

特殊数据的起始位置

其他一些信息

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

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

指针的标记,占2bit;

行内容的长度,占15bit。

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

以上是关于Postgresql物理存储结构的主要内容,如果未能解决你的问题,请参考以下文章

赵强老师史上最详细的PostgreSQL体系架构介绍

PG核心篇--物理存储结构

postgresql数据库体系结构

Postgresql体系架构

物理存储结构

Oracle存储(物理+逻辑)结构