我有以下 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,但不清楚这些在这种情况下是否重要。