QA
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→

More Software Engineering Principles Interview Questions

Beginner LevelSoftware Engineering Principles

Explain the 5 SOLID Principles of Object-Oriented Software Design with practical refactoring examples.

Beginner LevelSoftware Engineering Principles

What are DRY (Don't Repeat Yourself), KISS (Keep It Simple, Stupid), and YAGNI (You Aren't Gonna Need It)?

Beginner LevelSoftware Engineering Principles

Why is Composition Over Inheritance a fundamental object-oriented design principle?