Amazon web services 红移改变查询

Amazon web services 红移改变查询,amazon-web-services,amazon-redshift,Amazon Web Services,Amazon Redshift,在查询下面,我们使用红移为拆分函数添加一个新列。我想知道,这是最好的方式(在性能上)还是其他什么?请让我知道。因为我在这个查询中面临性能问题 ALTER TABLE schemaname.test ADD COLUMN WASD_3 VARCHAR DEFAULT NULL; UPDATE schemaname.test SET WASD_3=SPLIT_PART(details, '_', 1)::VARCHAR UPDATE命令在Amazon红移中效率很低,因为整个现有行被标记为“已删除”

在查询下面,我们使用红移为拆分函数添加一个新列。我想知道,这是最好的方式(在性能上)还是其他什么?请让我知道。因为我在这个查询中面临性能问题

ALTER TABLE schemaname.test ADD COLUMN WASD_3 VARCHAR DEFAULT NULL;
UPDATE schemaname.test
SET WASD_3=SPLIT_PART(details, '_', 1)::VARCHAR

UPDATE
命令在Amazon红移中效率很低,因为整个现有行被标记为“已删除”,并且在行存储块的末尾追加了一个新行。这意味着在清空表之前,数据是未排序的


如果表很大,将数据选择到一个新表中,然后将数据复制回原始表,或者重命名表,效率会更高。

表中有多少行和列?300000条记录和20列这不是一个很大的数字(例如数百万或数十亿),因此,我建议您做一些计时测试,看看您是否对
UPDATE
+
VACUUM
感到满意,或者您是否需要额外努力来选择其他表。