Reka bentuk untuk access pattern dahulu, kemudian pilih partitioning + index/PK yang betul supaya mana-mana query tunggal hanya menyentuh sekeping kecil yang terbatas — tidak pernah mengimbas 10B baris. Sub-100ms merentas 10 bilion rekod bukan tentang disk yang lebih pantas; ia tentang menjadikan working set sangat kecil.
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
