2025年9月25日: PostgreSQL 18 釋出!
支援的版本: 當前 (18) / 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

66.3. 空閒空間對映 #

除雜湊索引外,每個堆和索引關係都有一個空閒空間對映(Free Space Map, FSM)來跟蹤關係中的可用空間。它與主關係資料一起儲存在單獨的關係分支中,該分支以關係的 filenode 號加上 _fsm 字尾命名。例如,如果一個關係的檔案節點號是 12345,則 FSM 儲存在名為 12345_fsm 的檔案中,該檔案位於主關係檔案所在的目錄中。FSM主關係檔案。 FSM 儲存在名為 12345_fsm 的檔案中,該檔案位於主關係檔案所在的目錄中。FSM位於主關係檔案所在的目錄中。 FSM 儲存在名為 12345_fsm 的檔案中,該檔案位於主關係檔案所在的目錄中。

空閒空間對映組織成一棵頁面(page)樹。最低層頁面儲存每個堆(或索引)頁面上的可用空閒空間,使用一個位元組表示每個這樣的頁面。上層則聚合來自下層頁面的資訊。FSM頁面。最低層頁面儲存每個堆(或索引)頁面上的可用空閒空間,使用一個位元組表示每個這樣的頁面。上層則聚合來自下層頁面的資訊。FSM頁面。最低層頁面儲存每個堆(或索引)頁面上的可用空閒空間,使用一個位元組表示每個這樣的頁面。上層則聚合來自下層頁面的資訊。

每個頁面內是一個二叉樹,以陣列形式儲存,每個節點佔一個位元組。每個葉子節點代表一個堆頁面,或者是一個較低層級的頁面。在每個非葉子節點中,儲存的是其子節點中較大的值。因此,葉子節點中的最大值儲存在根節點。FSM頁面,代表一個堆頁面,或者是一個較低層級的頁面。在每個非葉子節點中,儲存的是其子節點中較大的值。因此,葉子節點中的最大值儲存在根節點。FSM頁面。在每個非葉子節點中,儲存的是其子節點中較大的值。因此,葉子節點中的最大值儲存在根節點。

有關 FSM 的結構、更新和搜尋方式的更多詳細資訊,請參閱 src/backend/storage/freespace/READMEpg_freespacemap 模組可用於檢查儲存在空閒空間對映中的資訊。FSMFSM 的結構,以及如何更新和搜尋它。 pg_freespacemap 模組可用於檢查儲存在空閒空間對映中的資訊。

提交更正

如果您在文件中發現任何不正確的內容、與您在使用特定功能時的體驗不符的內容,或者需要進一步說明的內容,請使用 此表格 報告文件問題。