大型物件的實作將大型物件分解成“區塊(chunk)”,並將這些區塊儲存在資料庫的資料列中。B 樹索引可確保在進行隨機存取讀寫時,能夠快速搜尋到正確的區塊編號。
為大型物件儲存的區塊不一定是連續的。例如,如果應用程式開啟一個新的大型物件,尋找偏移量 1000000,並在那裡寫入幾個位元組,這不會導致分配價值 1000000 位元組的儲存空間;只會分配涵蓋實際寫入的資料位元組範圍的區塊。但是,讀取操作會讀取任何在最後一個現有區塊之前的未分配位置的零。這對應於“稀疏分配”檔案的常見行為,在Unix檔案系統中。
從 PostgreSQL 9.0 開始,大型物件具有擁有者和一組存取權限,可以使用 GRANT 和 REVOKE 進行管理。讀取大型物件需要 SELECT
權限,寫入或截斷大型物件需要 UPDATE
權限。只有大型物件的擁有者(或資料庫超級使用者)才能刪除、評論或變更大型物件的擁有者。若要調整此行為以與先前的版本相容,請參閱 lo_compat_privileges 執行期參數。
如果您在文件中發現任何不正確、與您使用特定功能的經驗不符或需要進一步澄清的地方,請使用此表單報告文件問題。