我有一个 Postgres 8.3 实例,其表空间总计约为 74G。这可以。
但是如果我问 postgres 我的数据库有多大,我会得到一个(出乎意料的)大答案:595 GB。
这似乎很奇怪。系统上的磁盘 I/O 测试处于“正常”范围内,但查询速度比以前慢。
这是数据库的损坏吗?或者有没有办法“修复”这种奇怪的现象?
[编辑]我通过操作系统检查表空间大小:
/usr/local/pgsql/data/tblspaces/du -c -h
74G total
所有的表空间都在那里
我像这样检查数据库大小:
select pg_size_pretty(pg_database_size('database'))
[编辑2]
我还检查了整个 /usr/local/pgsql/ 目录。76G
我运行了这个查询:
select
tablename
, pg_relation_size(tablename)
, pg_size_pretty(pg_relation_size(tablename) ) as relsize
, pg_size_pretty(pg_total_relation_size(tablename) ) as disksize
, pg_total_relation_size(tablename)
from pg_tables where schemaname <> 'information_schema'
order by 2 desc
返回“正常”关系大小,其中没有一个超过磁盘大小。