PostgreSQL的数据存储(九)---数据存储

4.2.2 表数据页的存储数据格式

数据的存储格式,包括系统表的数据存储、日志文件的数据存储、用户表数据的格式存储、用户创建的数据对象定义的存储等。

其中,一些数据对象的创建,方式有些差别,如序列(sequence)和视图,其创建就是一个定义,不涉及数据;而用户自定义的表,包括定义和数据两部分。

在实际存储中,这些信息,都是以tuple(元组、或称为记录)形式存储起来的。所以,在一个数据页的存储格式中,包括两大部分数据,一是页头,二是tuple数组。

页面初始状态

页面存有tuple状态


PostgreSQL的数据存储(九)---数据存储
PostgreSQL的数据存储(九)---数据存储

分析PageAddItem函数中对于“lower”和“upper”变量的赋值方式可以知晓tuple的存放方式。

4.2.3 大数据的处理方式---TOAST

一条tuple的size很大时,一个页面也不能容纳下,PG如何应对?

可以参阅:

http://www.cnblogs.com/daduxiong/archive/2010/08/23/1806706.html

基本写出了toast的原理和相关内容。

---这个连接,后来看了看,原来是PG的帮助的转载,呵呵呵呵。