有没有办法事先弄清楚(不是通过反复试验)特定查询是否应该使用GROUP BY或GROUP EACH BY? 我们目前看到,在基数为~60-70%后,我们被要求使用EACH集团。我们生成SQL时很难预测。
答案 0 :(得分:5)
'EACH'的使用不依赖于查询,而是依赖于数据。组表达式是否有少量唯一值?使用GROUP BY。有很多吗?使用GROUP EACH BY。
最佳策略是使用GROUP BY,直到出现“超限错误”。
要深入了解“为什么?”,您可以查看启动它的Dremel论文。基本上GROUP BY在混音器中运行,而GROUP EACH BY则被推送到分片。
有关其他见解,请在Resources Exceeded during query execution检查jcondit的答案。