Reasons for SQL:
- Structured data
- Strict schema
- Relational data
- Need for complex joins
- Transactions
- Clear patterns for scaling
- More established: developers, community, code, tools, etc
- Lookups by index are very fast
Reasons for NoSQL:
- Semi-structured data
- Dynamic or flexible schema
- Non-relational data
- No need for complex joins
- Store many TB (or PB) of data
- Very data intensive workload
- Very high throughput for IOPS
Sample data well-suited for 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 [後設資料]
參考 系統架構篇