</>
⌕
Junior #sql#nosql#database#trade-off

Chọn SQL hay NoSQL cho hệ thống?

⚡ Trả lời nhanh

SQL (quan hệ) mạnh về schema chặt, JOIN, ACID transaction: hợp dữ liệu có quan hệ, cần nhất quán (tài chính, đơn hàng). NoSQL (document, key-value, wide-column, graph) ưu tiên scale ngang, schema linh hoạt, truy vấn theo pattern biết trước. Chọn theo access pattern, không theo mốt.

Loại NoSQLVí dụHợp với
Key-valueRedis, DynamoDBcache, session, truy cập theo khoá
DocumentMongoDBdữ liệu lồng, schema thay đổi
Wide-columnCassandraghi cực lớn, time-series
GraphNeo4jquan hệ phức tạp (mạng xã hội)

Câu hỏi để quyết định:

  • Cần transaction đa bảng và JOIN ad-hoc không?
  • Tải ghi/đọc có vượt một node mạnh không?
  • Truy vấn có biết trước (key-based) hay khám phá tuỳ ý?
  • Chấp nhận eventual consistency không?
🃏 Ôn bằng flashcard