1.Partitioning splits data within a database; sharding distributes it across instances
Partitioning divides one table's rows into smaller physical pieces that still live on the same database server — it helps manageability and query performance but does not add capacity beyond one machine. Sharding goes further: it splits data across multiple separate database instances (often on separate machines), which is what actually lets storage and write throughput scale past what a single instance can hold.
Key features
- Partitioning: splitting one table's rows into physical partitions inside a single database instance (e.g. by date range or hash)
- Sharding: splitting data across multiple independent database instances, each holding a subset of the overall data
- Partitioning alone does not increase total capacity — it is still one machine's CPU, memory and disk
- Sharding increases capacity by adding more machines, each independently handling its own shard's reads and writes
- Many systems use both together: each shard is itself internally partitioned for query performance within that shard
Partitioning vs sharding
- Partitioning
- One database instance, split into pieces
- Helps manageability and query speed
- Never adds capacity beyond one machine
- Sharding
- Multiple independent database instances
- Each shard handles its own reads and writes
- Actually adds capacity by adding machines
Command
partitioning: one DB instance → orders_2024, orders_2025, ...
sharding: many DB instances → shard-0, shard-1, shard-2, ...
(each with its own partitions)Partitioning reorganizes data within one instance for manageability and query speed; sharding distributes data across multiple instances to actually add capacity beyond what one machine can hold.