Between database sharding and partitioning, we can go with database sharding, where we will break it into smaller databases. These smaller databases will be deployed on a separate server:
In general, database sharding is simply defined as a shared-nothing partitioning scheme for large databases. This way, we can achieve a new level of high performance and scalability. Sharding comes from shard and spreading, which means piding a database into chunks (shards) and spreading to different servers.
The preceding diagram is a pictorial overview of how our database is pided into smaller databases. Take a look at the following diagram: