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 партиций, результаты которых ничего не добавляют к финальному ответу, — но мы всё равно тратим много времени и вычислений на их слияние.

Ещё за этот день

2026-11-07