Suddividi la tabella gigante in tabelle figlie fisiche più piccole per una partition key, così che ogni query tocchi solo le partizioni di cui ha bisogno (partition pruning) invece di fare scan di miliardi di righe. Una tabella con 5B di righe d'ordine si comporta comunque come un'unica tabella logica, ma il motore salta il 99% di essa quando il tuo WHERE filtra sulla partition key.
La forma di una tabella partizionata
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)
