Skip to main content
Enterprise applications
本繁體中文版使用機器翻譯,譯文僅供參考,若與英文版本牴觸,應以英文版本為準。

PostgreSQL 表格空間

貢獻者

初始化資料庫叢集時會自動建立兩個資料表空間。

pg_global 表空間用於共享系統目錄。。 pg_default 表空間是 template1 和 template0 資料庫的預設資料表空間。如果初始化叢集的磁碟分割或磁碟區空間不足且無法擴充、則可在不同的磁碟分割上建立資料表空間、並在重新設定系統之前使用。

大量使用的索引可以放在快速、高可用度的磁碟上、例如固態裝置。此外、儲存歸檔資料的表格、無論是極少使用或非效能關鍵、都可以儲存在成本較低、速度較慢的磁碟系統上、例如 SAS 或 SATA 磁碟機。

資料表空間是資料庫叢集的一部分、無法視為資料檔案的獨立集合。它們取決於主資料目錄中包含的中繼資料、因此無法附加至不同的資料庫叢集或個別備份。同樣地、如果您遺失資料表空間(透過檔案刪除、磁碟故障等方式)、資料庫叢集可能會變得無法讀取或無法啟動。將資料表空間放在像 RAM 磁碟一樣的暫存檔案系統上、會危及整個叢集的可靠性。

建立表格後、如果要求的使用者擁有足夠的權限、則可以從任何資料庫使用表格區。PostgreSQL 使用符號連結來簡化資料表空間的實作。PostgreSQL 會在中新增一列 pg_tablespace 表(叢集範圍表格)、並將新的物件識別碼( OID )指派給該列。最後、伺服器會使用 OID 在叢集與指定目錄之間建立符號連結。目錄 $PGDATA/pg_tblspc 包含指向叢集中定義的每個非內建表格空間的符號連結。