![解決PostgreSQL表膨脹而不影響讀/寫?](https://rvso.com/image/668784/%E8%A7%A3%E6%B1%BAPostgreSQL%E8%A1%A8%E8%86%A8%E8%84%B9%E8%80%8C%E4%B8%8D%E5%BD%B1%E9%9F%BF%E8%AE%80%2F%E5%AF%AB%EF%BC%9F.png)
我有一個很大的 postgresql 表,我認為它已經開始變得臃腫,我想修復它。通常我可以執行VACUUM FULL
or操作CLUSTER
,但我想知道是否可以在不影響讀取/寫入效能的情況下修復膨脹。
如果存在索引膨脹,我可以(手動)同時建立一個新索引,該索引索引與舊索引相同的內容,但名稱不同,並且當它創建時,我可以刪除舊的、膨脹的索引。這使我能夠修復索引膨脹,同時對生產使用的影響最小(因為那裡總是有一個索引,並且讀取和寫入不會被阻止)。
有沒有類似的方法適用於表格?我可以CREATE TABLE newtable LIKE old_bloated_table INCLUDING ...
,這會重新建立表格。然後刪除並重新命名。但資料可能不同步。有沒有辦法確保表之間的數據相同? (對於索引,索引將始終與表同步)。