让 COPY 选择压缩编码
您可以在创建表时指定压缩编码,但在大多数情况下,自动压缩的效果最好。
ENCODE AUTO 是表的默认设置。将表设置为 ENCODE AUTO 时,Amazon Redshift 会自动管理表中所有列的压缩编码。有关更多信息,请参阅CREATE TABLE 和ALTER TABLE。
在加载操作中,COPY 命令自动分析您的数据并对一个空表应用压缩编码。
自动压缩将在选择压缩编码时平衡整体性能。如果排序键列的压缩率远高于同一查询中的其他列,则范围受限扫描的执行效果可能会很差。因此,自动压缩将选择一个效率较低的压缩编码来让排序键列与其他列保持平衡。
假设您的表的排序键为日期或时间戳,并且表使用了很多大型 varchar 列。在这种情况下,您可能通过完全不压缩排序键列来获取更高的性能。请对表运行 ANALYZE COMPRESSION 命令,然后使用编码创建一个新表,但忽略排序键的压缩编码。
仅当表为空且尚未指定压缩编码时,自动压缩编码才存在性能开销。对于短期存在的表和经常创建的表(如暂存表),可以使用自动压缩加载该表一次,或运行 ANALYZE COMPRESSION 命令。然后使用这些编码创建新表。您可以将编码添加到 CREATE TABLE 语句中或使用 CREATE TABLE LIKE 来创建采用相同编码的新表。
有关更多信息,请参阅 使用自动压缩加载表。