Sharding distributes data across multiple servers.
Architecture¶
- Shard — replica set with data
- Config server — metadata
- mongos — router
Setup¶
sh.enableSharding('mydb')
sh.shardCollection('mydb.orders',{userId:'hashed'})
sh.status()
Shard Key¶
- Hashed — even distribution
- Ranged — range queries efficient
- Compound — balanced distribution
Shard Key is Critical¶
Bad shard key = hotspots.
mongodbshardingscaling