Partitioning splits one logical table into smaller parts, usually within one database system (helps manage data and can speed up queries via partition pruning). Sharding splits data across multiple database nodes/instances to scale out. Partitioning is often simpler; sharding adds distributed complexity.