Postgresql

VACUUM FULL 是否需要 ANALYZE

  • June 22, 2015

VACUUM如果您能深入了解PostgreSQL 9.3中的功能,我將不勝感激。我通讀了文件並進行了一些搜尋,但找不到明確的答案。

我正在為 9.3 伺服器設置每週數據庫維護工作。

其中一部分將是VACUUM FULL. 這是一個很小的數據庫,我有一個不錯的周末維護視窗,所以我可以FULL毫無問題地執行它。

ANALYZE選項添加到命令有什麼意義嗎?

根據 9.3 文件:

VACUUM FULL將表的全部內容重寫到沒有額外空間的新磁碟文件中,允許將未使用的空間返回給作業系統。

如果表完全重新創建,那麼我是否需要特別要求ANALYZE發生,或者當行被寫入新版本的表時,統計資訊是否會自動更新?

統計資訊是根據列中的值生成的。由於這些值不會被改變,VACUUM FULL甚至不會被改變,因此沒有特別要求VACUUM新鮮。ANALYZE

但是,如果數據庫處於維護視窗中,那麼這是執行它的好機會。與VACUUM FULL.

預設情況下,DBA 將依賴 autovacuum/auto-analyze 而不是手動執行此操作,但手動操作除外,ANALYZE當剛剛批量載入或大量修改的新表立即涉及到一個良好計劃的查詢時沒有良好的統計數據是無法獲得的。

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