Trung BìnhSystem Design iconSystem Design

Khi nào chọn SQL và khi nào chọn NoSQL? Các yếu tố quyết định? (When to choose SQL vs NoSQL? What are the deciding factors?)

SQL (Relational DB): dùng khi cần ACID transactions (tài chính, đặt hàng), data có structure rõ ràng và ổn định, cần complex queries với JOINs. PostgreSQL, MySQL là lựa chọn mặc định tốt cho hầu hết applications.

NoSQL chia thành nhiều loại:
- Document DB (MongoDB, Firestore) – flexible schema, tốt cho content management, user profiles
- Key-Value (Redis, DynamoDB) – cực nhanh, tốt cho caching, session, leaderboards
- Column-family (Cassandra, HBase) – write-heavy workloads, time-series, IoT data ở scale lớn
- Graph DB (Neo4j) – relationship-heavy queries, social networks, fraud detection

Quyết định không chỉ là SQL vs NoSQL mà là chọn đúng database cho use case. Polyglot persistence – dùng nhiều database types trong cùng hệ thống – là approach của các hệ thống lớn (Netflix dùng MySQL + Cassandra + Elasticsearch + Redis).

Xem toàn bộ System Design cùng filter theo level & chủ đề con.

Mở danh sách System Design