怎么分析postgres每个表占用了多少空间

子木007 发布于 2014/04/17 15:52
阅读 1K+
收藏 0

@kenyon_君羊

你好, 请教个问题, 我用 pg_dump -F t -O -x -b 导出的备份文件比我预期的大好多啊, 
我想看看是什么内容或者哪个表占的空间比较大。

 请问有什么方法或者命令可以做到? 上面的命令不带压缩吗?

加载中
0
kenyon_君羊
kenyon_君羊

你数据库里的数据是否有压缩的,有压缩导出来变大是正常的。你可以登录到数据库查看一下那些对象是占空间比较大的。

1.查看数据库大小
\l+
或执行SQL

SELECT pg_size_pretty(pg_relation_size('DB_Name')) as size;


2.连接到比较大的数据查看具体对象
\dt+

SELECT pg_size_pretty(pg_total_relation_size(' TABLE_Name')) as size;

你的这个pg_dump -b参数会导出大对象的信息,检查一下你的系统大对象表
pg_largeobject_metadata和pg_largeobject表


子木007
子木007
pg_largeobject 这个表有 40w 条记录。
子木007
子木007
会提示 'DB_Name' 不存在。已经改成我的数据库名
0
子木007
子木007

-b
--blobs

Include large objects in the dump. This is the default behavior except when --schema, --table, or --schema-only is specified, so the -b switch is only useful to add large objects to selective dumps.

0
kenyon_君羊
kenyon_君羊

可以参考下这两篇BLOG:
http://my.oschina.net/Kenyon/blog/194530
http://my.oschina.net/Kenyon/blog/194936

子木007
子木007
谢谢~
返回顶部
顶部