为什么我的查询仍在Redshift中使用sortkey进行全表扫描?

时间:2018-03-23 21:55:08

标签: amazon-redshift

假设我们有一个table1,其中包含field1 INT ENCODE ZSTD,我们在field1上添加了interleaved sort键。

但是当我进行查询select * from table1 where field1=123;时,我仍然看到整个表上的顺序扫描,我认为应该是对表的子扫描。

我对排序键有误解吗?

1 个答案:

答案 0 :(得分:2)

1)根据您的说法,您不需要交错排序键,因为您只有一个您感兴趣的列。当您希望多列同样重要时,您需要一个交错排序键,因为您想要同时运行where col1=123where col2=123种查询。这为大型表提供了好处。

2)压缩排序键列被认为是一种不好的做法。 Proof from Amazonthe first column in a compound sort key should not be encoded(一列密钥相同)。整篇文章实际上很有用,请阅读它,你不会后悔

3)当配置排序键并填充数据时,最好运行vacuum并分析命令以确保对行进行相应排序以排序键并更新表统计信息。