一个简单的 BigQuery 查询 `SELECT country, state, city FROM mytable GROUP BY country` 总是很慢。查询计划显示 Stage:1 中有大量读取。最可能的原因是什么?
选择一个答案
点击一个选项来检查您的答案。
正确答案: 大多数行具有相同的 country 值,导致数据倾斜.
为什么这是答案
这个查询慢的原因最可能是数据倾斜。当 GROUP BY 键(这里是 country)的值分布不均匀时,BigQuery 会将大部分工作分配给处理相同 country 值的少数槽位,导致这些槽位过载而其他槽位空闲,从而拖慢整个查询。查询计划中 Stage:1 有大量读取,进一步支持了数据倾斜的判断,因为倾斜的数据会导致某个或某几个分片需要处理远超平均水平的数据量。 并发用户查询过多可能会导致整体系统变慢,但通常不会在查询计划中直接表现为某个 Stage 有大量读取。表分区过多可能会增加元数据开销,但通常不会直接导致 GROUP BY 阶段的读取量异常。state 或 city 列中包含许多 NULL 值与 GROUP BY country 的性能无关,因为这些列并未参与分组操作。
通过考试 — 无需无休止地寻找答案
将本次考试的所有验证问题和解释集中在一处,节省数小时的准备时间。1,000+ 认证 · 20+ 语言 · 免费开始。
更快通过考试 → 无需银行卡