有没有办法提前(而不是反复试验)确定特定的查询应该使用GROUP by还是GROUP EACH BY?我们目前看到,在大约60-70%的基数之后,我们被要求使用每个Group by。当我们生成SQL时,很难预测。
发布于 2013-06-06 09:30:51
“EACH”的用法并不取决于查询,而是取决于数据。组表达式是否有少量的唯一值?使用GROUP BY。有很多吗?使用GROUP EACH BY。
最好的策略是使用GROUP BY,直到你得到一个"over limits error“。
要更深入地了解“为什么?”,你可以看看Dremel的论文,它开启了这一切。基本上,GROUP BY在混合器中运行,而GROUP EACH BY被推送到分片。
有关其他见解,请查看jcondit在Resources Exceeded during query execution上的回答。
https://stackoverflow.com/questions/16443013
复制相似问题