支援的版本:目前 (17) / 16 / 15 / 14 / 13
開發版本:devel
不支援的版本:12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4 / 7.3 / 7.2 / 7.1

33.2. 實現特性 #

大型物件的實作將大型物件分解成區塊(chunk),並將這些區塊儲存在資料庫的資料列中。B 樹索引可確保在進行隨機存取讀寫時,能夠快速搜尋到正確的區塊編號。

為大型物件儲存的區塊不一定是連續的。例如,如果應用程式開啟一個新的大型物件,尋找偏移量 1000000,並在那裡寫入幾個位元組,這不會導致分配價值 1000000 位元組的儲存空間;只會分配涵蓋實際寫入的資料位元組範圍的區塊。但是,讀取操作會讀取任何在最後一個現有區塊之前的未分配位置的零。這對應於稀疏分配檔案的常見行為,在Unix檔案系統中。

PostgreSQL 9.0 開始,大型物件具有擁有者和一組存取權限,可以使用 GRANTREVOKE 進行管理。讀取大型物件需要 SELECT 權限,寫入或截斷大型物件需要 UPDATE 權限。只有大型物件的擁有者(或資料庫超級使用者)才能刪除、評論或變更大型物件的擁有者。若要調整此行為以與先前的版本相容,請參閱 lo_compat_privileges 執行期參數。

提交更正

如果您在文件中發現任何不正確、與您使用特定功能的經驗不符或需要進一步澄清的地方,請使用此表單報告文件問題。