Databases
Broadly, a database is a large, integrated collection of data stored and accessed electronically.
A database management system (DBMS) is a software system designed to store, manage, and facilitate access to databases.
Data is at the heart of most significant programs, but few understand how database systems actually work.
I use:
- PostgreSQL
- SQlite
- MongoDB
- ClickHouse
- RocksDB
- LevelDB
- RethinkDB
- TimescaleDB
- InfluxDB
- Prometheus
- etcd
- Firestore
- Citus
- Redis
- Elasticsearch
- Apache Kafka
- Supabase
- Prisma
Links
- Things you should know about databases
- Things I Wished More Developers Knew About Databases (2020)
- Databases in 2022: A Year in Review
- Building a database in the 2020s
- The B-Tree, LSM-Tree, and the Bw-Tree in Between
- A Database Without Dynamic Memory Allocation
- Retrospection and Learnings from Dgraph Labs
- How Discord Stores Billions of Messages
- Reddit's database has two tables
- Overview of Consistency Levels in Database Systems
- Soft Deletion Probably Isn't Worth It
- Offline data access: a dream come true?
- Code in database vs. code in application
- Ideas on better database design
- Super-Structured Data - Rethinking the schema.
- A Gentle Introduction to Vector Databases
- 42 things I learned from building a production database
- A terrible schema from a clueless programmer
- Spending $5k to learn how database indexes work
- How we built a forever-free serverless SQL database
- Offline First Database Comparison - An implementation of the exact same app in Firestore, AWS Datastore, PouchDB, RxDB and WatermelonDB.
- Relational Databases Aren’t Dinosaurs, They're Sharks
- Partitioning GitHub’s relational databases to handle scale
- Real world database latency
- Write a time-series database engine from scratch
- The pedantic checklist for changing your data model in a web application
- Common data model mistakes made by startups
- An unlikely database migration
- If All You Have Is a Database, Everything Looks Like a Nail - Databases are fabulous resources. Of course, we’ll abuse them in ways that cause challenges.
- We deleted the production database by accident
- The database I wish I had (2020)
- What are databases? from Prisma's Data Guide.
- Recent database technology that should be on your radar (part 1)
Books
- Use The Index, Luke by Markus Winand - A site explaining SQL indexing to developers—no crap about administration.
- SQL Performance Explained by Markus Winand - Everything developers need to know about SQL performance.
- Designing Data-Intensive Applications (DDIA) - The big ideas behind reliable, scalable, and maintainable systems. (review, review, notes, literature references, Tweet)
- Database System Concepts
Theory and Research
CS theory and research.
Papers
- Closing the B-tree vs. LSM-tree Write Amplification Gap on Modern Storage Hardware with Built-in Transparent Compression by ScaleFlux et al., 2021, VLDB.
- LSI: A Learned Secondary Index Structure by MIT CSAIL et al., aiDM 2022.
Readings
- Readings in Database Systems (commonly known as the "Red Book") written by Peter Bailis, Joseph M. Hellerstein, Michael Stonebraker, editors
- database-system-readings is a curated reading list about database systems, including personal digests of books/papers/blogs.
Newsletters
- DB Weekly - A weekly round-up of database technology news and articles covering new developments, SQL, NoSQL, document databases, graph databases, and more.
Lists
- Database Systems Resources - This repo contains a list of resources that are hopefully useful for people who want to learn more about database systems. Resources include papers, university courses, blog posts, talks, and other sources.
- Awesome Database Tools - Everything that makes working with databases easier.
- Awesome Database Learning - A list of learning materials to understand databases internals, including but not limited to papers, blogs, courses, and talks.