PG无法释放空间问题分析

近期对PG数据库的两张分区表进行数据删除操作,近40G数据。当PG的两张分区表完成操作后,执行vaccum full table发现磁盘空间无任何的变动。

操作步骤:

1、建表导入无数据。例如:
CREATE TABLE t1 AS SELECT * FROM t2 WITH NO DATA;

2、导入数据。例如:
insert into t1 select * from t2 where create_time > ‘2021-01-01’ and create_time < ‘2021-07-01’;

3、校验导入的数据量。例如:
select count(id) from t1;

4、删除数据并校验。例如:
delete from t1 where create_time > ‘2020-07-01’ and create_time < ‘2021-01-01’;

5、释放磁盘空间。例如:
VACUUM FULL t1

执行了vaccum full t1无任何的变化。经过分析,大表进行分区操作后,需要对每张分区表执行vaccum full t1_01,
vaccum full t1_02 至到
vaccum full t1_0x最后一张表。

发表评论

邮箱地址不会被公开。 必填项已用*标注