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
Last updated