NEW
Also known as: Horizontal Partitioning
Horizontal partitioning strategy that distributes a dataset across multiple nodes to improve scalability and performance.
DESCRIPTION
Sharding splits data into shards distributed across servers, enabling scale-out for read and write workloads. Shard keys determine placement via ranges, hashes, or custom functions. Properly chosen keys balance load and minimize cross-shard operations. Operational concerns include rebalancing, resharding, fault tolerance, and transactions across shards. Some systems automate sharding, while others require application logic. Sharding complements replication for availability and read scaling.
ALTERNATIVE DEFINITIONS
Wikipedia
Database sharding is a type of database partitioning that separates very large databases into smaller, faster, more easily managed parts called data shards.
Stresses manageability and performance for large databases.
MongoDB
Sharding is a method for distributing data across multiple machines.
Vendor-neutral operational framing with practical guidance.
CockroachDB
Sharding is the practice of horizontally partitioning data to improve scalability and performance.
Highlights horizontal partitioning and goals of sharding.
RELATED TERMS
Partitioning Consistent Hashing Distributed Database Range Sharding Hash Sharding Rebalancing Scalability Data Locality Horizontal Scaling
COMPETING TERMS
Vertical Partitioning Replication
KNOWLEDGE AREAS
Data Storage & Operations Data Architecture Data Engineering Cloud
TARGET AUDIENCE
Data Engineer Data Architect Cloud Architect Software Developer DevOps Engineer
EXTERNAL SOURCES
- Wikipedia - Shard (database architecture)
- MongoDB - Operational guide to sharding.
- Google Cloud Spanner - Data partitioning and scaling guidance.
- CockroachDB - Introductory sharding article.
TOP QUESTIONS
When should I shard a database?
When vertical scaling is exhausted or workload distribution is uneven, sharding enables horizontal scaling and localized access patterns.
Category: Relevancy
How do I choose a shard key for Sharding?
Pick a key with high cardinality and even distribution, avoiding hotspots. Consider query patterns to minimize cross-shard joins.
Category: Requirements
What are common Sharding strategies?
Hash-based, range-based, and directory-based sharding are common. Some systems combine strategies or support custom partitioners.
Category: Concept
What are risks of Sharding?
Operational complexity, cross-shard transactions, and rebalancing overhead can introduce latency and consistency challenges.
Category: Risks
How does Sharding interact with Replication?
Shards are often replicated for high availability and read scaling, combining scale-out with fault tolerance.
Category: Concept
Can I reshard without downtime?
Some systems support online resharding; careful planning, incremental moves, and dual-writing patterns reduce downtime risks.
Category: Practice
How does Sharding affect transactions?
Single-shard transactions are simpler; cross-shard transactions need distributed protocols and careful consistency management.
Category: Concept
Is Sharding always necessary for scalability?
Not always—replication, caching, and read replicas may suffice. Use sharding when bottlenecks persist or data volume mandates partitioning.
Category: Opinion
What monitoring is essential for Sharding?
Track shard distribution, hotspot keys, cross-shard latency, and rebalance status to ensure even load and health.
Category: Observability