PostgreSQL 查询数据库、数据表的空间占用大小

PostgreSQL 查询所有数据库的大小: SELECT d.datname AS database_nam

PostgreSQL 查询所有数据库的大小:

SELECT
    d.datname AS database_name,
    pg_size_pretty ( pg_database_size ( d.datname ) ) AS SIZE 
FROM
    pg_database d 
ORDER BY
    pg_database_size ( d.datname ) DESC

PostgreSQL 查询数据库的大小以及其中各个表的大小:

SELECT
    nspname AS SCHEMA_NAME,
    relname AS TABLE_NAME,
    pg_size_pretty ( pg_relation_size ( quote_ident( nspname ) || '.' || quote_ident( relname ) ) ) AS SIZE 
FROM
    pg_class
    JOIN pg_namespace ON pg_namespace.OID = pg_class.relnamespace 
WHERE
    pg_class.relkind = 'r' 
    AND pg_namespace.nspname = 'public' 
ORDER BY
    pg_relation_size ( quote_ident( nspname ) || '.' || quote_ident( relname ) ) DESC;

注:以上命令测试版本:PostgreSQL 15。