Postgresql 中文操作指南

53.30. pg_largeobject #

目录_pg_largeobject_持有构成“大型对象”的数据。一个大型对象由在创建时分配的OID标识。每个大型对象被分解成足够小的区段或“页”,以便作为_pg_largeobject_中的行方便存储。每页的数据量被定义为_LOBLKSIZE_(目前为_BLCKSZ/4_,一般为2kB)。

在 PostgreSQL 9.0 之前,没有与大对象关联的权限结构。因此, pg_largeobject 可以公开读取,并且可用于获取系统中所有大对象的 OID(及内容)。不再是这样;使用 pg_largeobject_metadata 获取大对象 OID 列表。

Table 53.30. pg_largeobject Columns

Column Type

Description

loid oid (引用 pg_largeobject_metadata . oid )包含此页的大对象的标识符

pageno int4 此页在此大对象中的页号(从零计数)

data bytea 存储在大型对象中的实际数据。它永远不会多于 LOBLKSIZE 字节,并且可能会更少。

pg_largeobject_的每一行都保存一个大型对象的页的数据,始于对象中字节偏移(_pageno * LOBLKSIZE)。该实现允许稀疏存储:页可能丢失,甚至如果不是对象的最后一页,也可能短于_LOBLKSIZE_字节。大型对象内的区域丢失时读取为零。