解決PostgreSQL表膨脹而不影響讀/寫?

解決PostgreSQL表膨脹而不影響讀/寫?

我有一個很大的 postgresql 表,我認為它已經開始變得臃腫,我想修復它。通常我可以執行VACUUM FULLor操作CLUSTER,但我想知道是否可以在不影響讀取/寫入效能的情況下修復膨脹。

如果存在索引膨脹,我可以(手動)同時建立一個新索引,該索引索引與舊索引相同的內容,但名稱不同,並且當它創建時,我可以刪除舊的、膨脹的索引。這使我能夠修復索引膨脹,同時對生產使用的影響最小(因為那裡總是有一個索引,並且讀取和寫入不會被阻止)。

有沒有類似的方法適用於表格?我可以CREATE TABLE newtable LIKE old_bloated_table INCLUDING ...,這會重新建立表格。然後刪除並重新命名。但資料可能不同步。有沒有辦法確保表之間的數據相同? (對於索引,索引將始終與表同步)。

相關內容