Postgresql目前不支持使用裸设备和块设备。
Postgresql的属于
Relation:表示表或索引。
Tuple:表示表中的行。
Page:表示在磁盘中的数据块。
Buffer:表示在内存中的数据块。
Page结构
Page默认大小为8KB,最大32KB,一个数据块中可存放多行的数据。块中的结构如下图:
块头记录了如下信息:
块的checksum值
空闲空间的起始位置和结束位置
特殊数据的起始位置
其他一些信息
行指针是一个32bit的数字,具体结构如下:
行内容的偏移量,占15bit;
指针的标记,占2bit;
行内容的长度,占15bit。
行指针中表示行内容的偏移量是15bit,能表示的最大偏移量是2^15=32768,因此块的最大大小是32768,即32KB。