[PostgreSQL] 使用 VACUUM 指令定期整理/縮小資料庫

[PostgreSQL] 使用 VACUUM 指令定期整理/縮小資料庫

專案中一直在使用 Postgresql 做資料庫的處理,

但其實資料庫在增刪資料之後,為了效率考量,

並不會立刻將刪除的資料完全刪除,而導致資料庫的大小會逐漸的增加…

為了解決這個問題,研究了一下 Postgresql,

原來它本身就有提供一個 VACUUM 的指令,而且也建議使用者定期去執行這個指令來整理資料庫~

 

在執行之前,先學習一下怎麼看目前資料庫的大小吧~

在 15 Advanced PostgreSQL Commands with Examples 這篇文章中,

提到了可以用 pg_database_size() 這個函式來查,

而 pg_size_pretty() 這個函式則可以顯示成比較友善的格式:

SELECT pg_database_size(‘usboxdb’);
SELECT pg_size_pretty(pg_database_size(‘usboxdb’))

 

下面是執行後的結果,可以看到,目前的資料庫大小是 5 MB 多~ 

db_1    

 

塞了兩萬筆資料進去後,資料庫變成將近 8 MB,

但是將資料刪掉之後,再查一次,發現大小沒有改變…

 db_2      

 

如果這時候執行 VACUUM 指令,就可以真正將刪除的資料移除掉,

自然資料庫的大小也會縮小囉~~

db_3  

(本頁面已被瀏覽過 1,608 次)

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料