முதலில் access pattern-க்காக design செய்யுங்கள், பிறகு partitioning + சரியான index/PK தேர்ந்தெடுங்கள், இதனால் எந்த single query-ம் ஒரு சிறிய, bounded slice-ஐ மட்டும் தொடுகிறது — ஒருபோதும் 10B rows-ஐ scan செய்யாது. 10 பில்லியன் records மீது sub-100ms என்பது வேகமான disk பற்றியது அல்ல; working set-ஐ சிறியதாக்குவது பற்றியது.
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
