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.

TermMeaning
Data partitioningGeneral technique of dividing data
Horizontal partitioningDividing rows/records by key or range
Vertical partitioningDividing columns or features
ShardingHorizontal 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.