小编Mic*_*ert的帖子

Redshift select * vs select 单列

我有以下 Redshift 性能问题:

我有一个包含约 20 亿行的表,其中包含约 100 个 varchar 列和一个 int8 列 (intCol)。该表相对稀疏,尽管每行都有列有值。

以下查询:

select colA from tableA where intCol = ‘111111’;
Run Code Online (Sandbox Code Playgroud)

返回大约 30 行并且运行速度相对较快(约 2 分钟)

但是,查询:

select * from tableA where intCol = ‘111111’;
Run Code Online (Sandbox Code Playgroud)

需要不确定的时间(60 分钟后放弃)。

我知道修剪投影中的列通常会更好,但此应用程序需要整行。

问题:
这只是在 Redshift 中做的一件根本性的坏事吗?如果没有,为什么这个特定的查询需要这么长时间?它以某种方式与表的结构有关吗?是否有一些 Redshift 旋钮可以调整以使其更快?我还没有弄乱桌子上的 distkey 和 sortkey,但不清楚这些在这种情况下是否重要。

database-performance amazon-redshift

3
推荐指数
1
解决办法
1381
查看次数