Divide la tabla gigante en tablas hijas físicas más pequeñas por una partition key, para que cada query toque solo las particiones que necesita (partition pruning) en lugar de escanear miles de millones de filas. Una tabla con 5B de filas de pedidos aún se comporta como una única tabla lógica, pero el motor se salta el 99% de ella cuando tu WHERE filtra por la partition key.
La forma de una tabla particionada
orders (logical parent)
│ partition key = created_at
┌────────────────┼────────────────┬───────────────┐
▼ ▼ ▼ ▼
orders_2024_q1 orders_2024_q2 orders_2024_q3 orders_2025_q1
(child table) (child table) (child table) (child, active)
│ │
local index local index
(per child) (per child)
