Sharding is a method for storing data into multiple distributed machines. Database systems with large data sets and high throughput applications can challenge the capacity of a single server. To prevent this MongoDB Sharding concept used.
In Sharding the large data divided into data sets and distribute these sets to multiple servers or shards. Each shard is an independent database, and collectively, the shards make up a single logical database.
Sharding addresses the challenge of scaling to support high throughput and large data sets:
Sharding reduces the number of operations handled by each machine or shards. Each shard get fewer load when the cluster grows. A cluster can increase capacity and throughput. For example, to fetch data, the application only access the shard responsible for that record.
Sharding in also helpful for reduce data storage capacity. Each server share there memory to save data. For example if a mongo database used 500 GB, and there are 4 shared then each shard hold only 125GB of total data.