postgresql统计数据库大小(表、行数等)
目录
一、背景
在实际实际生产环境中,有时候我们往往需要知道最近的数据库使用情况,已及数据库表的使用情况,那我们就需要使用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;
效果如下: