Chapter 1 - Scale from Zero To Millions of Users
SQL Databases ( Relational )
- Oracle, PostgreSQL, MySQL
- Can perform join between different tables
- suitable for most projects
Non Relational Databases
- MongoDB, DynamoDB, CouchDB
- Grouped into 4 categories: key-value stores, graph stores, column stores, and document stores
- Right choice if
- app requires super-low latency
- data unstructured, no relational data
- only need to serialize and deserialize data ( XML, JSON )
- you need to store an insane amount of data
Vertical Scaling - scale up
- means adding more power to your servers( CPU, RAM )
- good when traffic is low since it’s simple
- vertical scaling has a hard limit since you can’t just keep adding CPU and memory to a single server.
- vertical scaling does not have failover and redundancy. If one server goes down, the entire site goes down with it.