Redrock Postgres 搜索 英文
版本: 9.3 / 9.4 / 9.5 / 9.6 / 10 / 11 / 12 / 13 / 14 / 15 / 16

35.2. 实现特性 #

大型对象实现将大型对象分解为 ,并将这些块存储为数据库中的行。B 树索引保证在进行随机访问读取和写入时快速搜索正确的块号。

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

PostgreSQL 9.0 开始,大型对象具有所有者和一组访问权限,可以使用 GRANTREVOKE 进行管理。读取大型对象需要 SELECT 权限,写入或截断大型对象需要 UPDATE 权限。只有大型对象的所有者(或数据库超级用户)才能删除、注释或更改大型对象的所有者。要调整此行为以兼容之前的版本,请参阅 lo_compat_privileges 运行时参数。