Skip to content

Latest commit

 

History

History
66 lines (38 loc) · 1.49 KB

sql-vs-nosql.md

File metadata and controls

66 lines (38 loc) · 1.49 KB

SQL vs NoSQL

SQL: relational database store data in tables which are formed in rows and columns.

NoSQL:

  • key-value
  • document
  • graph

High level differences

Storage

SQL: table

NoSQL: key-value, document, graph.

Schema

SQL: fixed

NoSQL: dynamic

Querying

SQL: uses SQL (structured query language)

NoSQL: UnQL (unstructured query language).

Scalability

SQL: vertically scalable. Hard to horizontally scale

NoSQL: horizontally scalable.

Reliability or ACID Compliancy (Atomicity, Consistency, Isolation, Durability)

SQL: ACID compliant

NoSQL: sacrifice ACID compliance for performance and scalability.

Ideal Applications

https://www.sitepoint.com/sql-vs-nosql-differences/

Projects where SQL is ideal

  • logical related discrete data requirements which can be identified up-front
  • data integrity is essential
  • standards-based proven technology with good developer experience and support.

Projects where NoSQL is ideal

  • unrelated, indeterminate or evolving data requirements
  • simpler or looser project objectives, able to start coding immediately
  • speed and scalability is imperative.

https://github.com/donnemartin/system-design-primer#sql-or-nosql

  • Rapid ingest of clickstream and log data
  • Leaderboard or scoring data
  • Temporary data, such as a shopping cart
  • Frequently accessed ('hot') tables
  • Metadata/lookup tables