postgresql统计数据库大小(表、行数等)

目录

一、背景

二、查看数据库所有表的记录条数

1、带模式名查询

2、不带模式名查询

三、查看数据库所有表的大小

1、查看单表大小

2、查看库下的所有表大小

3、查看索引大下

四、查看所有库的大小


一、背景

在实际实际生产环境中,有时候我们往往需要知道最近的数据库使用情况,已及数据库表的使用情况,那我们就需要使用sql来查询,当然有的人也会说可以使用监控来查看数据库的使用情况,这个确实是没有问题,但是使用监控有局限性,只能查看到数据库的整体使用情况,具体的表大小是看不到的,接下来我们一起来实操一下

二、查看数据库所有表的记录条数

1、带模式名查询

SELECT
    schemaname AS schema,
    relname  AS table,
    n_live_tup AS record_count
FROM
    pg_stat_user_tables;
 

效果如下:

2、不带模式名查询

 SELECT
    relname AS table,
    n_live_tup AS record_count
FROM
    pg_stat_user_tables
WHERE
    schemaname = 'public';

效果如下:

三、查看数据库所有表的大小

1、查看单表大小

select pg_size_pretty(pg_relation_size('表名'));


效果如下:

2、查看库下的所有表大小

select relname, pg_size_pretty(pg_total_relation_size(relid)) as size from pg_stat_user_tables;


效果如下:

3、查看索引大下

 select pg_size_pretty(pg_relation_size('索引名')) as size;



四、查看所有库的大小

select datname, pg_size_pretty (pg_database_size(datname)) AS size from pg_database;



效果如下: