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 [元数据]
参考 系统架构篇