Entwirf zuerst für das Zugriffsmuster, dann wähle Partitionierung + den richtigen Index/PK, sodass jede einzelne Abfrage nur einen kleinen, begrenzten Ausschnitt berührt - niemals 10 Mrd. Rows scannt. Sub-100ms über 10 Milliarden Datensätze geht es nicht um eine schnellere Platte; es geht darum, das Working Set winzig zu machen.
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
