Advanced Topic 38 of 51 Databases
Sharding
Distributing data horizontally across nodes.
How it works
Sharding splits data horizontally across multiple database servers, each holding a subset called a shard, chosen by a shard key using range, hash or directory-based strategies. Queries that include the shard key go to one shard, while others must fan out. It scales storage and write throughput beyond a single machine, unlike replication, which copies the same data.
Step-by-step walkthrough
- Data is divided across servers by a shard key.
- A request for user 1.5M reaches the router.
- The router sends it to the correct shard.
- Each shard holds only part of the data.
- Capacity grows by adding shards, but cross-shard queries and rebalancing are hard.
Where it is used
Very large social networks, e-commerce platforms, multi-tenant services and systems like MongoDB, Vitess and Citus use sharding to grow.
Common pitfall
A bad shard key causes hot spots, such as sequential IDs sending all writes to one shard. Cross-shard joins and transactions are slow or unsupported, and resharding is operationally difficult. Application logic becomes more complex. Delay sharding until needed, try vertical scaling, caching and read replicas first, and choose keys matching dominant access patterns.
Where it fits in the course
Sharding is topic 38 of 51 in Databases, rated Advanced. It follows Replication. The next topic is NoSQL Databases.
Practice and explore
- Open the interactive lesson, with a mini quiz.
- Take the Databases quiz.
How to study this topic
- Read the explanation above and restate the definition in your own words.
- Open the interactive lesson and answer its mini quiz.
- Read the common pitfall, then write a short example that avoids it.
- Check your understanding in the Databases quiz, and revisit the topic if you miss a question.
Frequently asked questions
What is Sharding?
Where do people use Sharding?
What is the most common mistake with Sharding?
What should I learn before this topic?
How can I practice it?
Is Sharding hard to learn?
How long does it take to learn Sharding?
Which topics are related to Sharding?
What should I study after Sharding?
Related topics
- Replication (Databases)
- NoSQL Databases (Databases)
- Database Partitioning (Databases)
- Document Stores (Databases)