哈羅所有的計算總和,PostgreSQL數據庫的大小(表空間大小)更大然後關係
我看到實際的數據庫大小之間存在非常大的差異(在硬盤上,並通過pg_database_size()
來電顯示)和大小,通過總結由pg_total_relation_size()
檢索的總關係大小來計算。
首先是62G,最後是16G(右從最大的表中刪除的數據的差)
下面是一個簡單的查詢,可以顯示我的系統上的區別:
select current_database(),
pg_size_pretty(sum(total_relation_raw_size)::bigint) as calculated_database_size,
pg_size_pretty(pg_database_size(current_database())) as database_size
from (select pg_total_relation_size(relid) as total_relation_raw_size
from pg_stat_all_tables -- this includes also system tables shared between databases
where schemaname != 'pg_toast'
) as stats;
看來這裏有一些懸而未決的數據。出現這種情況後,我們傾倒並徹底清除了該數據庫中大量未使用的數據。
PS:我想,這是某種形式的數據庫損壞......從這種情況下恢復的唯一辦法是切換到熱備用數據庫...
你能舉一個大小和差異的例子嗎?哪一個更大? – 2011-01-21 21:44:43
O,對不起,我忘了提及實數: 62G用於`pg_database_size()`顯示的數據庫大小; 17G用於關係大小的總和 – valgog 2011-01-23 10:08:14