首页 > 解决方案 > 具有等效限制的 BigQuery Select

问题描述

有谁知道在 BigQuery 中这样的查询的最佳性能是什么?

SELECT lastUpdated
FROM `test_db.test_dataset.Customers`
ORDER BY lastUpdated DESC
LIMIT 1

它工作正常并按日期获得最后一个结果,但是我有点担心 BigQuery 的限制:

查询完成(经过 0.3 秒,已处理 2.9 MB)

有没有办法在不花费那么多处理的情况下运行类似的查询?

标签: sqlgoogle-bigquery

解决方案


如果您担心“支出”,请在 BigQuery 查询中只考虑两件事:

  1. 扫描了多少列?您可以通过仅选择查询肯定需要的列来进行优化。另外,如果列是 RECORD 类型,则仅选择子列也会有所帮助
  2. 扫描了多少行?请注意,“LIMIT/WHERE/ORDER BY”不会更改BigQuery 中将扫描的行数。可以减少扫描行的 2 件事是分区集群。在你的情况下,当你的表在未来增长时,集群lastUpdated肯定会有所帮助。

推荐阅读