创建pgstattuple 扩展
CREATE EXTENSION pgstattuple
获取表的元组(行)信息,包括空闲空间的比例和行的平均宽度
SELECT * FROM pgstattuple('表名');
查看表和索引大小
SELECT pg_relation_size('表名'), pg_relation_size('索引名称');
清理碎片方法
VACUUM:
VACUUM FULL 会对表进行全面的清理和重组,包括删除过期的行版本、回收空间并整理索引。这个操作会锁定表,因此也会导致较长的停机时间。与 REINDEX 不同的是,VACUUM FULL 不仅会整理索引碎片,还会对表的数据进行整理。
VACUUM FULL 表名;
CLUSTER:
CLUSTER 命令会根据指定的索引对表进行重新排序,从而使表的数据和索引都变得更加紧凑。这个操作也会锁定表,并且需要足够的磁盘空间来临时存储排序后的结果。
CLUSTER 表名 USING 索引名称;
清理后:
free_percent 碎片率明显降低