Intermediate LevelSoftware Engineering Principles
What is Database Sharding versus Database Partitioning?
❓ Interview Prompt: Compare Database Horizontal Partitioning (sharding across multiple server nodes) vs Vertical Partitioning (table column separation) vs Range/Hash Sharding.
Distinguishing database scalability strategies:
•
Horizontal Partitioning (Sharding): Distributes rows of a table across multiple independent database server nodes using a Shard Key (e.g. 'user_id % 4'). Scales writes horizontally across cluster nodes.
•
Vertical Partitioning: Splits columns of a single table into separate tables (e.g. moving heavy 'blob' columns to a separate table).
•
Database Partitioning: Dividing a table into smaller parts on a single database node (e.g. PostgreSQL 'PARTITION BY RANGE (created_at)').
Code Implementation Example
sql
-- PostgreSQL Table Range Partitioning on single node
CREATE TABLE sales (
id BIGINT,
sale_date DATE NOT NULL
) PARTITION BY RANGE (sale_date);
CREATE TABLE sales_2026_q1 PARTITION OF sales
FOR VALUES FROM ('2026-01-01') TO ('2026-04-01');💡Creating range-partitioned database tables in PostgreSQL.
🎯 Interview Key Takeaway
Use Table Partitioning for single-node data management, and Database Sharding to scale write throughput across multiple database nodes.
#Sharding#Partitioning#Database Scaling#Intermediate
Back to all Software Engineering Principles Questions→