pg_largeobject #目录 pg_largeobject 存储构成“大对象”的数据。大对象由创建时分配的 OID 标识。每个大对象被分成足够小的段或“页”,以便方便地存储在 pg_largeobject 的行中。每页数据量定义为 LOBLKSIZE(当前为 BLCKSZ/4,通常为 2 kB)。
在 PostgreSQL 9.0 之前,大对象没有关联的权限结构。因此,pg_largeobject 是公开可读的,可用于获取系统中所有大对象的 OID(和内容)。现在情况已不再如此;使用 pg_largeobject_metadata 来获取大对象 OID 的列表。
表 52.30. pg_largeobject 列
|
列 类型 描述 |
|---|
|
包含此页的大对象的标识符 |
|
此页在其大对象中的页码(从零开始计数) |
|
大对象中实际存储的数据。这永远不会超过 |
pg_largeobject 的每一行都包含一个大对象页的数据,从对象内的字节偏移量(pageno * LOBLKSIZE)开始。该实现允许稀疏存储:页可能缺失,并且即使不是对象的最后一页,其长度也可能小于 LOBLKSIZE 字节。大对象内的缺失区域读取为零。