Partitioning is single-node, whereas sharding distributes data across multiple nodes. PostgreSQL does not provide native multi-node sharding, but extensions like Citus enable distributed partitioning.

Citus distributes partitions across multiple nodes, enabling massive parallelism. Example:

SELECT create_distributed_table('sales', 'order_date');

This automatically shards sales across multiple worker nodes, where each node handles different partitions.