【数据管理】PostgreSQL空间侦探!一文掌握数据库、表、索引占用大小查询技巧!

在这里插入图片描述

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;
  • 16
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值