Table of Contents
PostgreSQL提供一种大对象机制,允许以流式方式访问存储在专用大对象结构中的用户数据。在处理大到无法方便地整体操作的数据值时,这种流式访问非常有用。
本章介绍PostgreSQL大对象数据的实现,以及相应的编程接口和查询语言接口。本章示例使用libpq C 库,但大多数PostgreSQL原生编程接口都支持等效的功能。其他接口也可能在内部使用大对象接口来为大值提供通用支持,这里不作说明。
所有大对象都存储在一个名为pg_largeobject的系统表中。每个大对象在系统表pg_largeobject_metadata中也有一个条目。大对象可以使用一种类似标准文件操作的读写 API 来创建、修改和删除。
PostgreSQL还支持一种名为“TOAST”的存储系统,它会自动将大于单个数据库页的值存储到每个表各自的二级存储区域中。这使得大对象机制在一定程度上已经过时。大对象机制仍然保留的一个优势是,它允许的值大小可达 4 TB,而经过TOAST处理的字段最大只能到 1 GB。此外,可以高效地读取和更新大对象的一部分,而对于经过TOAST处理的字段,大多数操作都会把整个值作为一个整体读出或写入。
如果您发现文档中有不正确的内容、与您使用特定功能的经验不符或需要进一步说明,请使用此表单来报告文档问题。