Projete primeiro para o padrão de acesso, depois escolha o particionamento + o índice/PK certo para que qualquer consulta única toque uma fatia pequena e limitada — nunca escaneie 10B de linhas. Menos de 100ms sobre 10 bilhões de registros não é sobre um disco mais rápido; é sobre tornar o working set minúsculo.
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
