3
回答
怎么分析postgres每个表占用了多少空间
注册华为云得mate10,2.9折抢先购!>>>   

@kenyon_君羊

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

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

举报
子木007
发帖于4年前 3回/968阅
共有3个答案 最后回答: 4年前

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

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表


--- 共有 2 条评论 ---
子木007pg_largeobject 这个表有 40w 条记录。 4年前 回复
子木007会提示 'DB_Name' 不存在。已经改成我的数据库名 4年前 回复

-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.

顶部