Database Sharding vs Partitioning: What’s the Difference?