【发布时间】:2021-02-22 05:18:25
【问题描述】:
看起来LIMIT 对处理/查询的数据量没有影响(如果您信任 UI)。
SELECT
* --count(*)
FROM
`bigquery-public-data.github_repos.commits`
-- LIMIT 20
如何将查询的数据量限制在最低限度(即使可能总是需要一个完整的分区)
- 不使用“预览”或类似名称
- 不知道数据的分区/聚类
如何在查询执行前检查实际的大概金额?
在执行细节中声明只有 163514 行作为输入被查询(不是 244928379 行)
【问题讨论】:
-
不清楚你想要实现什么。您有分区和集群来限制数据扫描量,但在任何情况下,它总是执行一次完整扫描(在表上、分区上......)。限制只限制输出,不限制处理。那么,说不知道分区能不能再清楚一点?你要数数吗?全选 (*)?
-
"Limit 2" -> 提供了很多可能性。就像从缓存中获取最后两个条目(由于当前的写入或读取时间或者因为它经常使用,可能会被缓存。模拟概念存在于例如 cassandra .. -> 目标是最小化读取/成本并最大化性能。场景是您不了解分区和集群。
-
@guillaumeblaquiere 就像屏幕截图所示,如果你说它是全表扫描,那你就错了。就像我写的那样不是全表扫描。
-
我回答了更多细节和例子。但我不确定我是否正在解决您的问题。你能说得更准确点吗?
标签: sql google-cloud-platform google-bigquery sql-execution-plan