如何整理 PostgreSQL 的表空间,来优化磁盘容量,以防止数据库的磁盘不够用。
Solution1. 首先需要使用第三方工具,通过 SSH 连接到 PostgreSQL,再查看当前表空间中各个表的使用情况。
使用如下命令:
select pg_size_pretty(pg_database_size('pod42a5f2'));
// 查看以KB、MB、GB方式查看数据库大小
select pg_size_pretty(pg_relation_size('testable'));
// 查看表的大小
select pg_size_pretty(pg_total_relation_size('testable'));
// 查看表的总大小包括索引
select pg_size_pretty(pg_tablespace_size('tbs_data'));
// 查看表的总大小包括索引
select spcname from pg_tablespace;
// 查看所有表空间信息
VACUUM FULL testtable;
// 释放表空间
其中,切记注意使用 "VACUUM FULL testtable" 这条命令,因为其会使当前 backing service 的磁盘容量变大,因为命令会涉及到磁盘内容的复制,所以还请预估当前 backing service 的剩余磁盘容量是否能否支持命令的使用。
Notes
Notes