是否可以知道哪个数据库占用了磁盘上最多的存储空间

时间:2015-01-31 06:07:12

标签: postgresql

我发现postgreSQL存储目录下的最大文件夹是/usr/local/var/postgres/base/209510

我怎么知道这些数据属于哪个数据表?

另一方面,是否可以知道哪个数据库或数据表占用最多的商店。

因为我的SSD磁盘上几乎没有可用空间

3 个答案:

答案 0 :(得分:2)

要在postgreSQL中找到最大的数据库:

SELECT datname, pg_size_pretty(pg_database_size(datname)) db_size
FROM pg_database
ORDER BY db_size;

答案 1 :(得分:1)

在psql中,您可以使用\l+命令获取大小合适的数据库摘要。

答案 2 :(得分:0)

执行此操作的最佳方法是在SQL提示符内 - 有几个可以在https://wiki.postgresql.org/wiki/Disk_Usage列出的查询示例,下面复制了当前数据库中最大表的一个查询示例。

SELECT nspname || '.' || relname AS "relation",
    pg_size_pretty(pg_relation_size(C.oid)) AS "size"
  FROM pg_class C
  LEFT JOIN pg_namespace N ON (N.oid = C.relnamespace)
  WHERE nspname NOT IN ('pg_catalog', 'information_schema')
  ORDER BY pg_relation_size(C.oid) DESC
  LIMIT 20;