我试图提取SKU匹配两个值之一的数据“GGOEGGCX056299 056299\GGOEGAAX0104 0104”
当我运行REGEXP_CONTAINS版本时,它使用来自查询配额17.6MB和使用IN操作符的51.5MB的3X更少的空间。我的Regex版本也被设置为通过管道符号搜索特定的SKU,所以我想知道是什么原因导致REGEX版本在处理查询时使用的空间比同时搜索两个特定SKU的in操作符更少?
对于理解不同之处有什么帮助,以及如何使我的查询更有效?谢谢。
SELECT
date,
prod.productSKU AS SKU,
SUM(prod.productQuantity) AS qty_purchased
FROM `bigquery-public-data.google_analytics_sample.ga_sessions_*`,
UNNEST (hits) hit, UNNEST(product) prod
WHERE _TABLE_SUFFIX BETWEEN '20170101' AND '20170131'
AND
REGEXP_CONTAINS (prod.productSKU,"GGOEGGCX056299|GGOEGAAX0104")
GROUP BY date, SKU
ORDER BY date ASC当我运行IN版本来获取相同的数据时,它说使用了51.5MB
SELECT
date,
prod.productSKU AS SKU,
SUM(prod.productQuantity) AS qty_purchased
FROM `bigquery-public-data.google_analytics_sample.ga_sessions_*`,
UNNEST (hits) hit, UNNEST(product) prod
WHERE _TABLE_SUFFIX BETWEEN '20170101' AND '20170331'
AND
prod.productSKU IN ("GGOEGGCX056299", "GGOEGAAX0104")
GROUP BY date, SKU
ORDER BY date ASC


发布于 2020-09-12 20:10:27
从我的查询配额17.6 MB到51.5MB减少了3X空间
以下是原因!
在第一个查询中
WHERE _TABLE_SUFFIX BETWEEN '20170101' AND '20170131'在第二位
WHERE _TABLE_SUFFIX BETWEEN '20170101' AND '20170331' 显然,第二次查询覆盖了更多的表,因此字节不同--一个月比三个月--因此~3x差。
https://stackoverflow.com/questions/63864401
复制相似问题