codecamp

PostgreSQL pg_largeobject

目录pg_largeobject保存构成大对象的数据。一个大对象在被创建时会被分配一个OID。每个大对象被分解成段或,以便小到可以被方便地作为行存储在pg_largeobject中。每页中的数据量被定义为 LOBLKSIZE(目前是BLCKSZ/4或是2 kB)。

PostgreSQL 9.0之前,大对象没有相关的权限结构。作为结果,pg_largeobject是公共可读的并且可以用来获得系统中所有大对象的OID(和内容)。但现在不是这样了,可使用 pg_largeobject_metadata 来获得大对象OID的列表。

表 51.30. pg_largeobject Columns

列类型

描述

loid oid (references pg_largeobject_metadata.oid)

包含此页的大对象的标识符

pageno int4

此页在它所属大对象中的页号(从0开始计)

data bytea

实际存储在大对象中的数据。它从不会超过LOBLKSIZE字节,也可能更少。


pg_largeobject的每一行保存一个大对象的一个页的数据,从对象内部的字节偏移量(pageno * LOBLKSIZE)开始。现在的实现允许稀疏存储:页面可能丢失,并且可能比LOBLKSIZE字节短(即便不是最后一页)。一个大对象中丢失的区域会被读出为0。


PostgreSQL pg_language
PostgreSQL pg_largeobject_metadata
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

PostgreSQL SQL语言

PostgreSQL 服务器管理

PostgreSQL 客户端接口

PostgreSQL 服务器编程

PostgreSQL 参考

PostgreSQL 内部

PostgreSQL 附录

PostgreSQL 参考书目

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }