A partition is any division of data into smaller pieces. A shard is usually a horizontal data partition stored and managed separately—often on a different server.
| Term | Meaning |
|---|---|
| Data partitioning | General technique of dividing data |
| Horizontal partitioning | Dividing rows/records by key or range |
| Vertical partitioning | Dividing columns or features |
| Sharding | Horizontal partitioning across independently managed storage nodes |
Example: suppose a Users table contains one million users.
Horizontal partitioning:
Partition 1: users 1–500,000
Partition 2: users 500,001–1,000,000
If those partitions are distributed across separate database servers:
Server A → Shard 1 → users 1–500,000
Server B → Shard 2 → users 500,001–1,000,000
That is sharding.
Vertical partitioning:
Server A → user identity and authentication
Server B → user profile and preferences
This divides data by columns or functionality, so it usually isn’t called sharding.
One important ambiguity: in distributed systems, partition can also mean a network partition, where nodes cannot communicate. That is unrelated to data partitioning:
Data partitioning → deliberately divide data
Network partitioning → communication failure divides nodes
So the relationship is:
Every shard is a data partition, but not every partition is a shard.