SQL pro relační data a transakce, NoSQL pro flexibilitu a horizontální škálování.
SQL¶
- ACID transakce
- Fixní schéma
- JOIN operace
- Vertikální škálování primárně
- PostgreSQL, MySQL, SQLite
NoSQL¶
- Různé modely (dokument, key-value, graf, sloupcové)
- Flexibilní schéma
- Horizontální škálování
- Eventual consistency (typicky)
- MongoDB, Redis, Cassandra, DynamoDB
CAP theorem¶
Distributed systém může garantovat max 2 ze 3: Consistency, Availability, Partition tolerance. SQL preferuje CP, NoSQL často AP.
Kdy co¶
- SQL — relační data, transakce, reporting, analytics
- Document (MongoDB) — flexibilní schémata, CMS, katalogy
- Key-Value (Redis) — cache, sessions, counters
- Wide-Column (Cassandra) — time series, write-heavy
- Graph (Neo4j) — sociální sítě, knowledge graphs
SQL je výchozí¶
SQL pro většinu use cases. NoSQL pro specifické workloady.
sqlnosqldatabáze