43.19. pg_largeobject

pg_largeobject 表保存那些標記著 "大對象"的數據。一個大對象是使用其創建時分配的 OID 標識的。每個大對象都分解成足夠小的小段或者"頁面" 以便以行的形式存儲在 pg_largeobject 裡。 每頁的數據定義為LOBLKSIZE(目前是BLCKSZ/4,或者通常是 2K 字節)。

Table 43-19. pg_largeobject 字段

名稱類型引用描述
loidoid 包含本頁的大對象的標識符
pagenoint4 本頁在其大對象數據中的頁碼 從零開始計算
databytea  存儲在大對象中的實際數據。 這些數據絕不會超過LOBLKSIZE字節,而且可能更少。

pg_largeobject 的每一行保存 一個大對象的一個頁面,從該對象內部的字節偏移(pageno * LOBLKSIZE) 開始。這種實現允許鬆散的存儲︰頁面可以丟失,而且可以比LOBLKSIZE 字節少 --- 即使它們不是對象的最後一頁。大對象內丟失的部分讀做零。