Top 10 resources to learn databases (practical, for working devs):
1) Designing Data-Intensive Applications (Kleppmann)
Good mental models: logs, replication, consistency, indexes, tradeoffs.
2) PostgreSQL official docs
Best free deep dive into query planning, MVCC, locking, indexes, vacuum.
3) Use The Index, Luke
Fast path to understanding indexes, EXPLAIN, and why your query is slow.
4) CMU 15-445/645 (Database Systems)
Solid systems view: buffer pools, B trees, concurrency control, recovery.
5) High Performance MySQL (Schwartz et al.)
Real ops details: InnoDB internals, schema design, replication, pitfalls.
6) Martin Kleppmann’s talks blog
Short, clear explanations of distributed DB problems without fluff.
7) Jepsen analyses
Learn failure modes from real incidents: split brain, lost writes, bad defaults.
8) Redis docs Redis University
Practical data structures, persistence modes, eviction, latency, gotchas.
9) SQLBolt (or Mode SQL tutorial)
Quick SQL reps, especially joins and window functions, without setup pain.
10) Practice project: build a mini DB-backed service
Pick Postgres. Add migrations, indexes, read replicas (logical), connection pooling, and load test. Use EXPLAIN ANALYZE and pg_stat_statements to fix the top 3 slow queries.