选择 打开 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

受支持版本: 当前版本 (18) / 17 / 16 / 15 / 14
测试与开发版本: 19 / devel
不受支持的版本: 13 / 12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0
历史版本PostgreSQL 9.3 已于 2018 年 11 月结束社区维护,本页译文保留供仍在使用旧版本的读者参考。新系统请看当前版本

32.2. 实现特性 #

大对象实现会把大对象拆分成若干,并将这些块存储在数据库行中。一个 B-树索引保证在执行随机访问读写时,能够快速找到正确的块号。

为一个大对象存储的块不必是连续的。例如,如果一个应用打开一个新的大对象,定位到偏移量 1000000,然后在那里写入几个字节,并不会因此分配 1000000 字节的存储空间;只会分配覆盖实际写入数据字节范围的那些块。不过,对于最后一个现有块之前任何未分配的位置,读取操作都会返回零字节。这对应于Unix文件系统中稀疏分配文件的常见行为。

PostgreSQL 9.0 起,大对象具有拥有者和一组访问权限,可用GRANTREVOKE管理。读取大对象需要SELECT权限,写入或截断大对象需要UPDATE权限。只有大对象的拥有者(或者数据库超级用户)才能删除、注释或更改大对象的拥有者。要为兼容先前版本而调整这种行为,请参见lo_compat_privileges运行时参数。

提交更正

译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。