我在Redshift中有一个表,其中有600万行,它的权重接近1 GB,并且我有一个例程,该程序删除一些行,然后再次插入它们(因为某些信息实时更改)。但是,我不知道为什么,桌子越来越大,就像REAL一样大,在本周末它的重量接近100 GB!
当我截断或删除表时,它恢复正常(有1 GB),但是我不能继续这样做
答案 0 :(得分:1)
在Amazon Redshift中删除一行时,该行被标记为 deleted ,但是只有在运行VACUUM
或VACUUM DELETE
命令之后才回收存储空间。这也适用于已更新的行,这将导致删除一行,然后将新行添加到存储空间的末尾。
来自Vacuuming Tables - Amazon Redshift:
执行删除时,这些行将标记为删除,但不会删除。 Amazon Redshift根据数据库表中已删除的行数自动在后台运行VACUUM DELETE操作。 Amazon Redshift安排VACUUM DELETE在负载减少时运行,并在负载高时暂停操作。
因此,您的桌子可能没有足够的“减少负载的时间”来完全吸尘。