Postgresql

在使用它時將大表移動到另一個表空間是否安全?

  • September 14, 2018

我有一張臃腫的大表(實際數據大小約為 65 Gb,磁碟上有 140 Gb)。由於預設表空間磁碟空間不足,真空無法正常工作。所以我想通過將胖表移動到另一個表空間,清理它們並返回來從垃圾中清理數據庫。

我可以在不關閉使用該表的服務的情況下安全地執行此操作嗎?每分鐘大約有 15 次單獨的一行插入和約 7次選擇操作。

還有幾個無關緊要的問題:

  1. 對於在這種負載下工作的自動吸塵表,您會建議哪些手冊/指南或參數設置。
  2. 以插入頻率傳遞舊數據刪除操作還是刪除大量行(每天、每週、每月等)更好?

該表將在移動到新表空間期間被 AccessExclusive 鎖定,因此您的應用程序將在此期間卡住。

您還沒有真正描述您的工作量是什麼,因此很難推薦設置來適應它。肯定不是 15 次單獨的一行插入和每分鐘約 7 次選擇操作導致現有的膨脹嗎?

通常,一旦您意識到行可以刪除,最好刪除它們。創建刪除隊列表只是另一個表,它可能會變得臃腫、需要維護、對其本身進行刪除、清理、編寫程式碼以適應它等。

引用自:https://dba.stackexchange.com/questions/217609