一般資料庫在使用一段時間後,隨著資料庫操作和資料越來越多,資料庫的儲存空間就會慢慢的增加,如果不適當的管理,最後會演變成一隻超吃空間的怪獸。
而一般的PostgreSQL SQL操作,如update或delete,這些資料的位元組,並沒有真正的被刪除,如不適當的回收,整個資料庫會虛胖到一個讓人無法接受的程度。
要如何知道資料庫的儲存的空間大小,PostgreSQL透過下列語法可以查詢資料庫所佔用的位元組:
postgres=> SELECT datname, pg_size_pretty(pg_database_size(datname)) as size FROM pg_database\g
datname | size
--------------+---------
postgres | 3537 kB
template1 | 3480 kB
template0 | 3480 kB
(4 行)
PostgreSQL提供 VACUUM 指令來回收垃圾儲存空間。
1. 建議平常定時使用 VACUUM 不帶任何參數,來進行簡單的回收空間令其可再次使用。
2. 有特殊大量資料新增或長時間定期維護時,使用 VACUUM FULL來做完全清理的動作,會耗費較長的時間來回收垃圾空間。
Note:VACUUM期間會lock table,會導致無法存取。
沒有留言:
張貼留言