Pivot придумал, как ускорить GROUP BY в запросах с топ-K
Can GROUP BY still be optimized after all these years?
В аналитических базах GROUP BY обычно выполняется через партиционирование и слияние всех партиций. Но в запросах вида «топ-10 товаров по числу заказов» большинство партиций не влияет на результат. Pivot предложил нарезать каждую партицию на слоты и отбрасывать те, где все слоты меньше текущего минимума в топ-K. На бенчмарке ClickBench это дало ускорение в 1,6 раза и отсечение более 70% партиций.
Если в системе 4096 партиций, топ-10 товаров могут находиться максимум в 10 из них. Остаётся как минимум 4086 партиций, результаты которых ничего не добавляют к финальному ответу, — но мы всё равно тратим много времени и вычислений на их слияние.