Database 收缩RDS实例上的pg_toast

Database 收缩RDS实例上的pg_toast,database,postgresql,amazon-rds,vacuum,autovacuum,Database,Postgresql,Amazon Rds,Vacuum,Autovacuum,我有一个Postgres 9.6 RDS实例,它每天增长1GB。我们已经对pg_toast的相关关系进行了一些优化,但是pg_toast的大小没有改变 Autovacuum已启用,但由于Autovacuum/VACUUM FREEZE不会回收空间,而且真空满度会进行独占锁定,因此我不再确定最佳方法是什么 表中的数据是我们用户体验的核心,尽管下面的方法很有意义,但它会带走我们的用户希望在整个过程中看到的数据 还有什么其他方法可以缩小pg_吐司 下面是一些关于表大小的数据。您可以在前两幅图像中看到,

我有一个Postgres 9.6 RDS实例,它每天增长1GB。我们已经对pg_toast的相关关系进行了一些优化,但是pg_toast的大小没有改变

Autovacuum已启用,但由于Autovacuum/VACUUM FREEZE不会回收空间,而且真空满度会进行独占锁定,因此我不再确定最佳方法是什么

表中的数据是我们用户体验的核心,尽管下面的方法很有意义,但它会带走我们的用户希望在整个过程中看到的数据

还有什么其他方法可以缩小pg_吐司

下面是一些关于表大小的数据。您可以在前两幅图像中看到,关系
评分\u响应core
与pg\u toast关联

自动真空设置

该特定pg_吐司当前运行的自动真空过程的结果。这可能会有帮助。

真空(完全)
是PostgreSQL提供的减少表大小的唯一方法

臃肿的吐司桌对你来说是个问题吗?TOAST表总是通过TOAST索引访问的,因此膨胀不应该是性能问题

我知道有两个项目只提供了一个短的
ACCESS EXCLUSIVE
锁来进行表重组,即and,但您可能无法在Amazon RDS数据库中使用它们

为了防止问题进一步恶化,您应该首先尝试将受影响表的
autovacuum\u vacuum\u成本限制
提高到2000,如果这不起作用,请将
autovacuum\u vacuum\u延迟
降低到0。您可以使用
ALTER TABLE
更改单个表的设置。

VACUUM(FULL)
是PostgreSQL提供的减小表大小的唯一方法

臃肿的吐司桌对你来说是个问题吗?TOAST表总是通过TOAST索引访问的,因此膨胀不应该是性能问题

我知道有两个项目只提供了一个短的
ACCESS EXCLUSIVE
锁来进行表重组,即and,但您可能无法在Amazon RDS数据库中使用它们


为了防止问题进一步恶化,您应该首先尝试将受影响表的
autovacuum\u vacuum\u成本限制
提高到2000,如果这不起作用,请将
autovacuum\u vacuum\u延迟
降低到0。您可以使用
ALTER TABLE
更改单个表的设置。

pg_-repack仍然不允许减小RDS中TOAST段的大小。
在RDS中,我们不能使用超级用户权限运行pg_repack,我们必须使用“-no superuser check”选项。这样,它将无法访问pg_toast.*表。

pg_repack仍然不允许减小RDS中toast段的大小。 在RDS中,我们不能使用超级用户权限运行pg_repack,我们必须使用“-no superuser check”选项。这样,它将无法访问pg_toast.*表。

pg_repack对RDS有效:pg_repack对RDS有效: