Proiectează pentru pattern-ul de acces mai întâi, apoi alege partiționarea + indexul/PK-ul potrivit, astfel încât orice interogare individuală să atingă o felie mică, delimitată — să nu scaneze niciodată 10B de rânduri. Sub-100ms peste 10 miliarde de înregistrări nu înseamnă un disc mai rapid; înseamnă să faci working set-ul minuscul.
Query ─▶ Router ──▶ Partition (by tenant/time) ──▶ Index/PK lookup ─▶ ~thousands of rows
│ (prune 99.9% of data) (B-tree / sort key)
└─▶ Cache (Redis) ─▶ hit? return in <5ms
miss ▼
Columnar store (ClickHouse) for aggregates / scans
