f Postgres Table Bloat ~ 迪貝之家

Pages

Postgres Table Bloat

這是一個跟AP單位溝通的案例

依照底下的數據, 表格大小大約32GB, 裡頭可用空間應該佔了一半以上54%
如果要把空間吐回給作業系統
那得透過vacuum full或者CTAS+DROP+RENAME 等方式來重整表格
依照Infra與AP部門間的默契,
要怎麼處置該表得由貴單位自己決定,因為這是物件level的管理
DB Team 僅提供數據給你們參考
怎麼調出數據的語法如下
你們想看其他表格的數據只要替換掉表格名稱即可
它是透過掃表的方式來取得每一個資料頁內部的數據
所以會比較耗I/O, 但不會影響到一般的交易
除非碰到有session 進行table lock,才會受它運作時的影響
table bloat


AP Leader 回問了autovacuum 的問題
因為他曾經幫我在客戶前說過話
我也就耐著性子回覆他所要的

Postgres 預設一定都會啟動autovacuum的功能
表格的可用空間54%
就表示autovauum 是有在持續地收回deadtuple 的空間
但是如果要把空間歸還給作業系統
就得重整表格