暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

PostgreSql 查看数据库、表、索引空间占用大小

IT后浪 2024-01-11
167

点击关注公众号↓


PostgreSQL
中,了解数据库、表和索引的空间占用大小对于优化数据库性能、管理存储空间和识别潜在问题非常重要。通过使用PostgreSQL
提供的系统函数和视图,我们可以轻松获取这些信息,并采取相应的措施来优化数据库。可以帮助我们优化数据库性能、管理存储空间和识别潜在的问题。

了解存储空间占用能做什么

优化数据库性能

通过查看表和索引的大小,我们可以确定哪些表或索引占用了大量的空间,可能会影响查询性能。我们可以考虑重新设计表结构、删除不必要的索引或重新组织数据以减少空间占用。

管理存储空间

了解数据库的总大小可以帮助我们规划存储需求。如果数据库的大小接近存储限制,我们可以考虑清理不必要的数据或者扩大存储容量。

识别潜在问题

通过查看数据库、表和索引的空间占用情况,我们可以发现一些潜在的问题,例如表或索引过大、数据分布不均匀等。这些问题可能会导致性能下降或存储不足的情况,我们可以及时采取措施来解决这些问题。

查看数据库空间占用

查看某个数据库的大小

select pg_database_size('test');

以人性化的方式显示大小

select pg_size_pretty(pg_database_size('gtxm'));

查看所有库的大小

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

以人性化的方式显示大小

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

查看表空间占用

通过pg_relation_size查看某个表的大小

select pg_relation_size('test');

以人性化的方式显示大小

select pg_size_pretty(pg_relation_size('test'));

通过pg_table_size查看某个表的大小

select pg_table_size('test');

以人性化的方式显示大小

select pg_size_pretty(pg_table_size('test'));

通过pg_total_relation_size查看某个表的大小

select pg_total_relation_size('p_operatorlog');

以人性化的方式显示大小

select pg_size_pretty(pg_total_relation_size('p_operatorlog'));

查看所有表的空间,并按大小排序

SELECT table_schema || '.' || table_name AS table_full_name, 
pg_total_relation_size('"' || table_schema || '"."' || table_name || '"')  AS size
FROM information_schema.tables WHERE table_schema = 'public'
ORDER BY
pg_total_relation_size('"' || table_schema || '"."' || table_name || '"'DESC

以人性化的方式显示大小

SELECT table_schema || '.' || table_name AS table_full_name, 
pg_size_pretty(pg_total_relation_size('"' || table_schema || '"."' || table_name || '"'))  AS size
FROM information_schema.tables WHERE table_schema = 'public'
ORDER BY
pg_total_relation_size('"' || table_schema || '"."' || table_name || '"'DESC

查看索引空间占用

查看某个索引的大小

select pg_relation_size('pk_test');

以人性化的方式显示大小

select pg_size_pretty(pg_relation_size('pk_test'));

查看某个表的索引的大小

select pg_indexes_size('p_test');

以人性化的方式显示大小

select pg_size_pretty(pg_indexes_size('p_test'));

查看某个库的索引的大小

select indexrelname, pg_relation_size(relid) from pg_stat_user_indexes where schemaname='public' order by pg_relation_size(relid) desc;

以人性化的方式显示大小

select indexrelname, pg_size_pretty(pg_relation_size(relid)) from pg_stat_user_indexes where schemaname='public' order by pg_relation_size(relid) desc;

点击关注公众号↓


文章转载自IT后浪,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论