带删除的查询使我的表越来越大

时间:2019-07-08 14:41:02

标签: amazon-web-services amazon-redshift sql-delete

我在Redshift中有一个表,其中有600万行,它的权重接近1 GB,并且我有一个例程,该程序删除一些行,然后再次插入它们(因为某些信息实时更改)。但是,我不知道为什么,桌子越来越大,就像REAL一样大,在本周末它的重量接近100 GB!

当我截断或删除表时,它恢复正常(有1 GB),但是我不能继续这样做

1 个答案:

答案 0 :(得分:1)

在Amazon Redshift中删除一行时,该行被标记为 deleted ,但是只有在运行VACUUMVACUUM DELETE命令之后才回收存储空间。这也适用于已更新的行,这将导致删除一行,然后将新行添加到存储空间的末尾。

来自Vacuuming Tables - Amazon Redshift

  

执行删除时,这些行将标记为删除,但不会删除。 Amazon Redshift根据数据库表中已删除的行数自动在后台运行VACUUM DELETE操作。 Amazon Redshift安排VACUUM DELETE在负载减少时运行,并在负载高时暂停操作。

因此,您的桌子可能没有足够的“减少负载的时间”来完全吸尘。

另请参阅:VACUUM - Amazon Redshift