pg_largeobject

pg_largeobject

Note: Greenplum数据库不支持PostgreSQL大对象工具,用于流式传输存储在大型对象结构中的用户数据。

pg_largeobject系统目录表保存构成“大对象”的数据。 大对象由创建时分配的OID来识别。 每个大对象被分解成便于在pg_largeobject表中储存为行的足够小的段或者“页”。 每页的数据量被定义为LOBLKSIZE(当前是BLCKSZ/4,或者通常是 8K)。

pg_largeobject的每一行都保存一个大对象的一个页,从对象内的字节偏移量(pageno * LOBLKSIZE)开始。 该实现允许稀疏存储:页面可以丢失,并且即使它们不是对象的最后一页也可能比LOBLKSIZE字节更短。 大对象中缺少的区域被读作0。

Table 1. pg_catalog.pg_largeobject
类型 参考 描述
loid oid   包含这一页的大对象的标识符。
pageno int4   大对象中该页的页号(从0开始计数)。
data bytea   存储在大对象中的实际数据。该数据不会超过LOBLKSIZE字节数而且可能会更小。