A commonly adopted strategy to address the lack of scalability in relational databases is to “shard” the data.
Sharding is a horizontal partitioning strategy where data in fact tables is divided up into non-overlapping subsets, and these subsets are each stored on a different database. At its core, sharding is a natural reaction to the fact that relational database performance degrades as data volumes increase. If your database behaves worse with more data, give it less data. [...]