Amazon web services 使用delete的查询正在使我的表越来越大

Amazon web services 使用delete的查询正在使我的表越来越大,amazon-web-services,amazon-redshift,sql-delete,Amazon Web Services,Amazon Redshift,Sql Delete,我有一个红移的表,有600万行,它的重量几乎是1GB,我有一个例程,删除一些行,然后再次插入它们(因为一些信息实时变化)。但是,我不知道为什么,这张桌子越来越大,就像真的越来越大一样,在这个周末,它的重量几乎达到100 GB 当我截断或删除表时,它将恢复正常(1 GB),但我无法继续执行此操作当在Amazon Redshift中删除一行时,它将被标记为已删除,但只有在运行VACUUM或VACUUM DELETE命令后才能回收存储空间。这也适用于更新的行,这会导致删除一行,然后将新行添加到存储空间

我有一个红移的表,有600万行,它的重量几乎是1GB,我有一个例程,删除一些行,然后再次插入它们(因为一些信息实时变化)。但是,我不知道为什么,这张桌子越来越大,就像真的越来越大一样,在这个周末,它的重量几乎达到100 GB


当我截断或删除表时,它将恢复正常(1 GB),但我无法继续执行此操作

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

发件人:

执行删除操作时,行被标记为删除,但不会被删除。AmazonRedshift根据数据库表中删除的行数在后台自动运行真空删除操作。Amazon Redshift计划真空删除在负载降低期间运行,并在高负载期间暂停运行

因此,您的表可能没有足够的“减少负载时间”来完全清空


另请参见:

寻求调试帮助的问题(“为什么此代码不起作用?”)必须包括所需的行为、特定的问题或错误以及在问题本身中重现这些问题所需的最短代码。没有明确问题陈述的问题对其他读者没有用处。你确定当你删除“旧”行时它真的被删除了吗?你试过真空吸尘吗?你好,尼古拉,谢谢你的帮助!当我使用真空吸尘器时,桌子继续使用相同的存储设备你好,约翰,谢谢你的帮助!当我使用真空吸尘器时,桌子继续使用相同的存储空间(我需要使用真空吸尘器)。我不明白这一点:“因此,您的桌子可能没有足够的“减负荷期”来完全吸尘。”我如何设置“减负荷期”来使用真空?自动吸尘是在安静期进行的。如果没有静默期,则可能没有任何自动吸尘。文档中说:“仅删除真空与完全真空相同,只是它跳过了排序。Amazon Redshift会在后台自动执行仅删除真空,因此您几乎不需要运行仅删除真空。”感谢您的回复John!我可以设定执行自动吸尘的时间吗?我的程序每30分钟执行一次……不,自动吸尘是自动的。如果希望它在特定时间发生,则需要自己运行。如果
VACUUM DELETE ONLY
不起作用,则应联系AWS支持。