【发布时间】:2011-02-24 22:30:18
【问题描述】:
我的 postgres 数据库(版本 8.2.3)显示大小为 24 GB。
为了得到这个数字,我执行了这个查询:
SELECT
oid, datname, pg_database_size(datname) as actualsize,
pg_size_pretty(pg_database_size(datname)) as size
FROM pg_database
ORDER BY datname
但是,当我执行此查询时,同一数据库中各个表的大小不会增加 24 GB:
SELECT
schemaname, tablename, pg_size_pretty(size) AS size_pretty,
pg_size_pretty(total_size) AS total_size_pretty
FROM
(SELECT *, pg_relation_size(schemaname||'.'||tablename) AS size,
pg_total_relation_size(schemaname||'.'||tablename) AS total_size
FROM pg_tables where schemaname = 'public') AS TABLES
ORDER BY total_size DESC;
我已经用漂亮的大小和total_size总结了各个表的大小,但值不匹配:
我得到了 3.5 GB 的大小
我得到了 5.2 GB 的 total_size_pretty。
我在哪里可以找到剩余的总空间被用于什么?
【问题讨论】:
标签: postgresql